Objective-C:消息语法与点语法;有什么不同?

时间:2010-11-23 19:26:38

标签: objective-c syntax syntactic-sugar

如果我使用@synthesize foo;,则以下内容之间存在以下差异:

// message syntax
[myObj setFoo:5];
[myObj foo];

// dot syntax
myObj.foo = 5;
myObj.foo;

我喜欢点语法的一致性,但我不知道它是否正在做我应该关注的事情。

任何其他信息都会有很大的帮助。

2 个答案:

答案 0 :(得分:12)

使用点语法和使用消息语法之间没有功能差异。

我发现使用消息语法与整个语言更加一致,而点语法只是为了方便那些使用它的语言的程序员(Java浮现在脑海中)。

我要问的是:无论你选择哪一个,都要与之保持一致。 不要混合搭配单个属性设置器! (多参数设置器显然是免除的)。

答案 1 :(得分:3)

他们是一样的。

点语法用于表示@property的访问权限,您也可以通过以下方式访问:

[myObject setValue: [NSNumber numberWithIntValue:5] forKey:@"foo"];
[myObject valueForKey:@"foo"];

但实质上呼叫是一样的。

相关问题