我正在读一本书 - Big Nerd Ranch iOS Programming。 它说不建议使用点符号,因为它会混淆代码。 我同时在看斯坦福大学的 iOS 编程类(class),他在类(class)中广泛使用点符号。你会推荐什么?我个人更倾向于括号表示法。
能否请您解释一下如何将这段代码转换为括号表示法?
self.display.text = [self.display.text stringByAppendingString:digit];
据我理解应该是:
[[self display] setText]:[[[self display] text] stringByAppendingString:digit];
是否正确?
最佳答案
这是个人选择的问题。有些人认为点表示法使正在发送的消息(正在调用的方法)变得不清楚,因为它看起来就像 C 风格的结构元素访问。争论的另一面是点符号更易于键入、更易于阅读且更简洁。
作为在引入点符号之前(在 Objective-C 2.0 中)就一直在编写 Objective-C 的人,我可以理解双方的论点,但我自己更喜欢使用点符号。也就是说,我确实认为对于开始使用 Objective-C 的人来说,了解点符号语法在编译时会转换为标准访问器方法调用很重要。我认为 Big Nerd Ranch 一书的作者可能也有类似的态度,这也是他们决定在书中使用括号符号的重要原因。
总之,做你最喜欢的事。两者都有效,两者之间的选择本质上是风格问题。无论您选择哪种,请确保您了解这两种样式都会生成等效的编译代码。
编辑:我忘了回答有关将点符号转换为方括号语法的问题。你很接近,但你写的是错误的,实际上不会编译。它应该是:[[self display] setText:[[[self display] text] stringByAppendingString:digit]]
。如果我正在写它,我会把它分成两行(好吧,我真的会使用点符号):
NSString *stringWithDigit = [[[self display] text] stringByAppendingString:digit];
[[self display] setText:stringWithDigit];
编辑 2:我写这个答案已经 3 年多了。我只是想指出,这些天来,更多的 Apple 框架类已经将以前的常规方法转换为 @properties(例如 -[NSArray count]
),大概是为了更好的 Swift 互操作性。这使我比以前更自由地使用点符号。
关于objective-c - Objective-c 点符号或方括号符号中首选什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11474284/