在Objective C中调用方法的语法?

时间:2012-06-17 04:14:40

标签: java iphone objective-c ios

我来自Java世界,所以对我来说它都是object.foo(),但在Objective C中,对象消息传递是调用方法的唯一方法吗?

[object foo];

4 个答案:

答案 0 :(得分:4)

您可以使用KVC:

 [label setValue:@"Some text" forKey:@"text"];

答案 1 :(得分:1)

是。您可以使用点语法来获取或设置Objective C属性。因此,例如,在UILabel *标签上设置文本可以[label setText:@"some text"];label.text = @"some text";

答案 2 :(得分:1)

首先想到的是使用@property和dot-notation。 @property名为'foo'的类允许您这样做:

anInstance.foo = @"bar";

字面在编译时转换为

[anInstance setFoo:@"bar"];

(与“getters”类似)

其他方式更高级,例如使用NSObject的performSelector:方法,或其他系统,如NSInvocation等。更深入,有方法在运行时调用方法,使用c函数(所有这些语法最终沸腾无论如何都要调用c函数);但我确信那不是你想要的。

答案 3 :(得分:1)

为了迂腐,为什么不低级:

objc_msgSend(object, sel_getUid("foo"), errVar);