我正在深入研究 iOS 编程,但我很难理解点表示法和方法表示法的想法。
据我了解,点表示法可用于调用属性上的 setter/getter,并且写入/读取更加清晰。方法表示法用于向对象发送消息以对其进行操作等。
有人可以给我一个简单的解释,解释为什么以下两个语句本质上不同,一个可以编译,但另一个会由于语法错误而失败。
- (IBAction)digitPressed:(UIButton *)sender
{
NSString *digit = [sender currentTitle];
self.display.text = [self.display.text stringByAppendingFormat:digit];
self.display.text = self.display.text.stringByAppendingFormat:digit;
}
Thanks.
您正处于一个有趣的时刻进入 Objective-C 开发,旧语法与新语法一起使用。点语法是语法糖,在某些情况下您需要can使用它,但你不应该使用它。
以下是无效语法。任何需要使用冒号的地方(除了 setter 或 getter),都不会使用点符号。
self.display.text = self.display.text.stringByAppendingFormat:digit;
另外,你会使用stringByAppendingString
, not stringByAppendingFormat
您可以使用点符号来访问变量,而不是调用会产生效果的操作。
Correct:
self.foo.attributeOfMyClass
错误:
self.foo.downloadSomethingFromAWebsite
确保您always使用点表示法来访问属性值,并且您始终使用方括号表示法(即使您不这样做)have to)调用action方法,你的代码一目了然。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)