只需选择Objective-C 2.0并想知道使用点运算符访问属性而不是“旧”方式是否有任何优势。我的意思的简短例子。
“老”的方式:
[myFraction setNumerator: 1];
[myFraction setDenominator: 3];
“新”方式:
myFraction.numerator = 1;
myFraction.denominator = 3;
谢谢!
罗德里戈
答案 0 :(得分:7)
唯一的区别是易于打字和可读性。其意见更具可读性因人而异:))
答案 1 :(得分:2)
我在下降对象时使用点语法并使用括号实际设置属性。
像这样:
[self.view setFrame:CGRectMake(0, 0, 320, 480)];
而不是:
[[self view] setFrame:CGRectMake(0, 0, 320, 480)];
答案 2 :(得分:2)
我实际上喜欢新语法 - 但也许是因为我是Python程序员。
点属性语法与KVC / KVO中的键路径很好地融合。它看起来比嵌套括号更贴近我的眼睛(我喜欢方案,所以我不反对括号嵌套!),并在访问属性时使其显式,而不是传递消息 - 即使机制是相同。
并且,我看到对象的属性访问(基本上)与访问struct或union的成员的操作相同,因此语法应该是相同的。
答案 3 :(得分:1)
我会以旧的方式争论:
方括号语法最明显的是你正在访问Objective-C对象的成员,而点语法表明你正在处理C结构(或联合)。
除此之外,这只是个人选择和更多/更少打字的问题。
答案 4 :(得分:0)
C ++和C#程序员在访问成员变量时可能会更自然地适应点运算符,因为它在这些语言中具有相似的用法。