可能重复:
Cocoa 中的双下划线是什么
我见过各种使用两个下划线而不是一个下划线的 Core Data 代码示例。我知道 iVars 和使用 _variableName 的优势......但是使用两个而不是一个是否有特殊的原因/优势?比如 __fetchedResultsController = ...
可能重复:
Cocoa 中的双下划线是什么
我见过各种使用两个下划线而不是一个下划线的 Core Data 代码示例。我知道 iVars 和使用 _variableName 的优势......但是使用两个而不是一个是否有特殊的原因/优势?比如 __fetchedResultsController = ...
没有真正的理由使用双下划线。
我会说我不是它们的粉丝,因为 Objective-C 中的某些东西使用它们,例如:
__block
或者__unsafe_unretained
当我看到 时__
,我倾向于首先将其视为 Apple 定义的装饰器。如果有的话,它会增加额外的思考,而单个下划线被普遍理解为一个类的 iVar。
我建议只使用_
.
从接受的答案到“可可中的双下划线是什么?”:
C 编译器(以及扩展的 Objective-C)保留以两个下划线和一个大写字母开头的名称供编译器供应商使用,为它们提供一个保留的命名空间,用于用于实现标准库的全局变量和函数,或引入新的非-标准关键字,如
__block
.
以下划线开头的外部标识符保留给库使用。