Rubyでは、nilに対して定義されてないメソッド呼び出しをするとNoMethodErrorになる。一方、Objective-Cではnilに対してメッセージを投げても実行時エラーになることはなく、nilが返ってくる。
さて、MacRubyではどうなっているかというと、(少なくとも現状は)Rubyに合わせた仕様になっているらしく、NoMethodErrorになる。
ただ、既存のObjective-Cのコードを置き換えるとか、Cocoa的に書くとnilにメッセージを投げたい場合も出てくると思うので、そういうときは
framework 'Foundation'
しておけばいい。
RubyMotionとかMobiRubyではこの辺どうなってるんだろう。
0 件のコメント:
コメントを投稿