我来自 Java 世界,所以对我来说就是这样object.foo()
,但是在 Objective C 中,对象消息传递是调用方法的唯一方法吗?
[object foo];
我来自 Java 世界,所以对我来说就是这样object.foo()
,但是在 Objective C 中,对象消息传递是调用方法的唯一方法吗?
[object foo];
您可以使用 KVC:
[label setValue:@"Some text" forKey:@"text"];
是的。您可以使用点语法来获取或设置 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函数);但我敢肯定这不是你所追求的。
为了迂腐,为什么不低级:
objc_msgSend(object, sel_getUid("foo"), errVar);