4

如果我正在使用@synthesize foo;,以下之间有什么区别:

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

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

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

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

4

2 回答 2

12

使用点语法和使用消息语法在功能上没有区别。

我发现使用消息语法与整个语言更加一致,并且实现点语法只是为了方便那些从使用它的语言(想到 Java)的程序员。

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

于 2010-11-23T19:29:45.977 回答
3

他们是一样的。

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

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

但本质上,调用是相同的。

于 2010-11-23T19:30:47.313 回答