Objective-C:消息语法与点语法;什么';有什么区别?
如果我使用的是Objective-C:消息语法与点语法;什么';有什么区别?,objective-c,syntax,syntactic-sugar,Objective C,Syntax,Syntactic Sugar,如果我使用的是@syntheticfoo,以下内容之间的区别是什么: // message syntax [myObj setFoo:5]; [myObj foo]; 及 我喜欢点语法的一致性,但我不知道它是否在做我应该关心的事情 任何附加信息都会有很大帮助。使用点语法和使用消息语法在功能上没有区别 我发现使用消息语法与语言整体上更一致,点语法的实现只是为了方便使用它的语言的程序员(想到Java) 我所要求的是:无论你选择哪一个,都要与它保持一致请勿混合和匹配单个属性设置器!(多参数设置器显然
@syntheticfoo代码>,以下内容之间的区别是什么:
// message syntax
[myObj setFoo:5];
[myObj foo];
及
我喜欢点语法的一致性,但我不知道它是否在做我应该关心的事情
任何附加信息都会有很大帮助。使用点语法和使用消息语法在功能上没有区别
我发现使用消息语法与语言整体上更一致,点语法的实现只是为了方便使用它的语言的程序员(想到Java)
我所要求的是:无论你选择哪一个,都要与它保持一致请勿混合和匹配单个属性设置器!(多参数设置器显然是例外)。它们是相同的
点语法用于表示对@属性的访问,您也可以通过以下方式访问该属性:
[myObject setValue: [NSNumber numberWithIntValue:5] forKey:@"foo"];
[myObject valueForKey:@"foo"];
但本质上,这些电话是相同的。同意。坚持这样或那样。我更喜欢使用点语法,因为它告诉我,我正在做的事情可能会保留或复制一个对象。我支持这种说法!但我也(尝试)使用点符号,这样当成员被定义为属性而不是方法时,我可以一目了然。“不要混合和匹配”是毫无意义的。如果您使用点符号设置所有属性,然后必须添加一个包含两个参数的setter,您该怎么办?@w.m则您别无选择,只能混合和匹配。这是严格用于设置单个属性的-这不适用于多参数设置器。我认为点语法是一个很大的错误。它污染了语法,使人困惑。
[myObject setValue: [NSNumber numberWithIntValue:5] forKey:@"foo"];
[myObject valueForKey:@"foo"];