6

私はJavaの世界から来たので、それがすべてobject.foo()ですが、Objective Cでは、オブジェクトメッセージングがメソッドを呼び出す唯一の方法ですか?

[object foo];
4

4 に答える 4

4

KVCを使用できます。

 [label setValue:@"Some text" forKey:@"text"];
于 2012-06-17T05:56:13.577 に答える
1

衒学者のために、低レベルになってみませんか:

objc_msgSend(object, sel_getUid("foo"), errVar);
于 2012-06-17T05:13:47.003 に答える
1

はい。ドット構文を使用して、Objective C プロパティを取得または設定できます。たとえば、UILabel *label にテキストを設定するには、[label setText:@"some text"];またはlabel.text = @"some text";

于 2012-06-17T04:19:55.160 に答える
1

最初に頭に浮かぶのは、@property とドット表記の使用です。「foo」という名前の @property を持つクラスを使用すると、次のことができます。

anInstance.foo = @"bar";

これは、コンパイル時に文字通り変換されます

[anInstance setFoo:@"bar"];

(「ゲッター」と同様)

他の方法は、NSObject の performSelector: メソッド、または NSInvocation などの他のシステムを使用するなど、より高度です。さらに深く掘り下げると、ランタイムでメソッドを呼び出す方法があり、c 関数を使用します (この構文はすべて、最終的に呼び出しに要約されます)。とにかくc関数); しかし、それはあなたが求めているものではないと確信しています。

于 2012-06-17T04:21:37.977 に答える