RubyCocoa で NSObject.alloc.init が NSObject を返さない問題

RubyCocoa で WebView を使うと NSObject.alloc.init が NSObject を返さないことがあったのでレポートしておいた。→ rubycocoa-devel:890
こんなコード

class AppController < OSX::NSObject
  include OSX

  def webView_decidePolicyForNavigationAction_request_frame_decisionListener(
          sender, action, request, frame, listener)
    listener.use
  end

  def awakeFromNib
    3000.times do |i|
      obj = NSObject.alloc.init
      if obj.class.name != 'OSX::NSObject'
        puts "Not NSObject at: #{i}"
        p obj
        return
      end
      view = WebView.alloc.initWithFrame(NSZeroRect)
      view.setPolicyDelegate(self)
      view.mainFrame.loadHTMLString_baseURL('<html></html>', nil)
    end
    puts 'No problem'
  end
end

を実行すると、

Not NSObject at: 104
#<OSX::WebPolicyDecisionListener:0x159ed6 class='NSObject' id=0x500e20>

となり、NSObject.alloc.init が NSObject 以外のオブジェクトを返していることがわかる。
どうやら Objective-C object id → ruby object の変換テーブルのキャッシュが悪さをしていたらしく、すぐに fix してくれた。→ rubycocoa-devel:893
hisaさん、Laurent、ありがとう。