繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM