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

mač*_*ček 4 syntax objective-c syntactic-sugar

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

// message syntax
[myObj setFoo:5];
[myObj foo];
Run Code Online (Sandbox Code Playgroud)

// dot syntax
myObj.foo = 5;
myObj.foo;
Run Code Online (Sandbox Code Playgroud)

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

任何其他信息都将是一个很大的帮助.

Jac*_*kin 12

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

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

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

  • 同意.坚持一个或另一个.我更喜欢使用点语法,因为它告诉我我正在做一些可能会保留或复制对象的东西. (2认同)
  • 我认为点语法是一个很大的错误.它会污染语法并使人感到困惑. (2认同)