我真的很困惑这件事。在任何教程、github 上的代码和文档中,我都看到 BOOL、NSString、NDDictionaries 等都以小写字母开头。例如。NSString *aString 这个有必要吗?如果我在创建 BOOL 等时使用大写字母,是否会毁掉任何东西?我在这里真的很困惑:P 非常感谢任何帮助!
编辑:使用下划线然后在 Capitals 中声明变量是个好主意吗?
这只是风格问题。使用大写字母不会毁掉任何东西,除了你在遵循这种风格的人中的声誉。
从评论中添加
它更多的是编码标准。我刚刚参加了 SCJP 考试,他们有一整章是关于编码标准的。由程序员决定他们如何在那里开发代码,但要考虑必须对其进行修改的人。使用大写字母会使阅读更容易还是更难阅读。我的建议是坚持大多数开发人员都理解的编码标准。
同样在编码标准下,您通常会用大写字母和以小写字母开头的变量声明您的类。这样在进行修改时不会让其他开发人员感到困惑,更重要的是不会让您感到困惑。如果您对自己的代码感到困惑,那就不好了。
但标准说它应该是这样的:
NSString *nsString; // Not that you should be having a variable like this. But stops the any confusion.
[nsString uppercaseString];
如果你有这个,它会开始变得混乱
// Compile won't actually let you have this just an example of confusion and reserved words.
NSString *NSString;
[NSString uppercaseString];
在编码标准中,经验丰富的开发人员必须知道,任何以大写字母开头的东西通常都是一个类,而任何以小写字母开头的东西都是一个变量。这几乎适用于所有编程语言。我在学习时确实看到了一些关于编码标准的困惑prolog
。
和 Sun一样,Apple 也有编码标准
它是 Cocoa 中的编码约定之一。
Apple 网站上有一份关于Cocoa 编码指南的文档。
遵循这些约定很有用。不仅因为它使您的代码更容易被其他 Cocoa 开发人员阅读,还因为现代 LLVM 编译器有时依赖这些约定,并且您将收到编译器警告,因为您认为是误报而不是因为你的非常规代码。
这是一个通用标准,可帮助您区分类和类/变量的实例。
不同的语言使用不同的标准,但您应该始终使用您所使用语言的通用样式。
它被称为camelBack Notation。Ruby 人喜欢 underscore_notation,iOS camelBack。虽然在我看来,它也更容易区分对象(camelBack)和类(大写)。
这只是Objective-C的风格或标准。你也可以像这样声明你的变量 -
BOOL MyVariable;
它也可以工作,但会造成混淆 b/wa 类名和变量名,这不是友好的代码。所以我们使用正确rule
的声明变量。