私はJavaの世界から来たので、それがすべてobject.foo()
ですが、Objective Cでは、オブジェクトメッセージングがメソッドを呼び出す唯一の方法ですか?
[object foo];
私はJavaの世界から来たので、それがすべてobject.foo()
ですが、Objective Cでは、オブジェクトメッセージングがメソッドを呼び出す唯一の方法ですか?
[object foo];
KVCを使用できます。
[label setValue:@"Some text" forKey:@"text"];
衒学者のために、低レベルになってみませんか:
objc_msgSend(object, sel_getUid("foo"), errVar);
はい。ドット構文を使用して、Objective C プロパティを取得または設定できます。たとえば、UILabel *label にテキストを設定するには、[label setText:@"some text"];
またはlabel.text = @"some text";
最初に頭に浮かぶのは、@property とドット表記の使用です。「foo」という名前の @property を持つクラスを使用すると、次のことができます。
anInstance.foo = @"bar";
これは、コンパイル時に文字通り変換されます
[anInstance setFoo:@"bar"];
(「ゲッター」と同様)
他の方法は、NSObject の performSelector: メソッド、または NSInvocation などの他のシステムを使用するなど、より高度です。さらに深く掘り下げると、ランタイムでメソッドを呼び出す方法があり、c 関数を使用します (この構文はすべて、最終的に呼び出しに要約されます)。とにかくc関数); しかし、それはあなたが求めているものではないと確信しています。