我见过各种使用两个下划线而不是一个下划线的核心数据代码示例。我知道iVars的优点并使用_variableName ......但是使用两个而不是一个有特定的理由/优势吗?例如__fetchedResultsController = ...
答案 0 :(得分:5)
没有真正的理由使用双下划线。
我会说我不是他们的粉丝,因为Objective-C中的一些东西使用它们,例如:
__block
或__unsafe_unretained
当我看到__
时,我倾向于首先将其视为Apple定义的装饰者。如果有的话,它会增加额外的思考,而单个下划线通常被理解为一个类'iVar。
我建议只使用_
。
来自the accepted answer to“Cocoa中的这个双下划线是什么?”:
C编译器(以及扩展名Objective-C)保留以两个下划线和大写字母开头的名称供编译器供应商使用,为它们提供一个保留的命名空间,用于全局变量和用于实现标准库的函数,或者引入新的非标准关键字,例如
__block
。
A summary of the ANSI C standard说:
以下划线开头的外部标识符保留用于库使用。