[英]Syntax for invoking a method in Objective C?
我来自Java世界,所以对我而言,它都是object.foo()
,但在Objective C中,对象消息传递是调用方法的唯一方法吗?
[object foo];
你可以使用KVC:
[label setValue:@"Some text" forKey:@"text"];
是。 您可以使用点语法来获取或设置Objective C属性。 因此,例如在UILabel *标签上设置文本可以[label setText:@"some text"];
或label.text = @"some text";
首先想到的是使用@property和dot-notation。 @property名为'foo'的类允许您这样做:
anInstance.foo = @"bar";
从字面上翻译成编译时
[anInstance setFoo:@"bar"];
(与“getters”相似)
其他方式更高级,例如使用NSObject的performSelector:方法,或其他系统,如NSInvocation等。更深入,有一些方法可以在运行时调用方法,使用c函数(所有这些语法最终都归结为调用无论如何c函数); 但我确信那不是你追求的。
为了迂腐,为什么不低级:
objc_msgSend(object, sel_getUid("foo"), errVar);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.