1

可能重复:
Cocoa 中的双下划线是什么

我见过各种使用两个下划线而不是一个下划线的 Core Data 代码示例。我知道 iVars 和使用 _variableName 的优势......但是使用两个而不是一个是否有特殊的原因/优势?比如 __fetchedResultsController = ...

4

1 回答 1

5

没有真正的理由使用双下划线。

我会说我不是它们的粉丝,因为 Objective-C 中的某些东西使用它们,例如:

__block或者__unsafe_unretained

当我看到 时__,我倾向于首先将其视为 Apple 定义的装饰器。如果有的话,它会增加额外的思考,而单个下划线被普遍理解为一个类的 iVar。

我建议只使用_.

接受的答案到“可可中的双下划线是什么?”:

C 编译器(以及扩展的 Objective-C)保留以两个下划线和一个大写字母开头的名称供编译器供应商使用,为它们提供一个保留的命名空间,用于用于实现标准库的全局变量和函数,或引入新的非-标准关键字,如__block.

ANSI C 标准的总结说:

以下划线开头的外部标识符保留给库使用。

于 2012-09-06T18:07:05.517 回答