セレクターに関するこの例で何が起こっているかについての私の理解を確認したかったのです。
Bar.m に arr というオブジェクトがあるNSArray
とします。Foo
Foo.m には(NSComparisonResult)compareFoo:
メソッドがありますが、Foo.h ファイルで宣言するのを忘れています。それでも、[arr sortedArrayUsingSelector:@selector(compareFoo:)];
コードを呼び出すと正常に実行されます。これは、オブジェクトである配列内のオブジェクトにメッセージcompareFoo:
が送信されているためで、Foo.h で宣言されていなくてもFoo
呼び出すことができますか?compareFoo:
これについて 100% 確信が持てなかったので、興味を持ちました。ありがとう!