objective-c - 在变量(__fetchedResultsController)之前使用两个下划线?

标签 objective-c ios core-data

Possible Duplicate:
What is this double underscore in Cocoa


我已经看到了很多使用两个下划线而不是一个下划线的Core Data代码示例。我知道iVars和使用_variableName的优点...但是使用两个而不是一个是否有特定的原因/优势?例如__fetchedResultsController = ...

最佳答案

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

我会说我不是他们的粉丝,因为Objective-C中的某些功能会使用它们,例如:
__block__unsafe_unretained
当我看到__时,我倾向于首先将其视为Apple定义的装饰器。如果有的话,它增加了额外的思考时间,而单个下划线被普遍理解为类的iVar。

我建议只使用_

摘自the accepted answer to:“可可粉中的双下划线是什么?”:

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

A summary of the ANSI C standard说:

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

关于objective-c - 在变量(__fetchedResultsController)之前使用两个下划线? ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12305855/

相关文章:

objective-c - Flac 转换器 Objective-C?

iphone - 单击十进制格式的文本框时如何设置数字小键盘?

iphone - AFNetworking : How to know if response is using cache or not ? 304 或 200

ios - mapKit 不显示注释

IOS/objective-C : Load one record from Core Data without loading table first

ios - XMPP、CoreData - 如何仅加载自身和目标用户消息?

ios - 在 viewDisappear 之前等待 saveInBackground Parse

ios - 以编程方式在单个应用程序模式下锁定 iOS 应用程序

ios - Swift ExpressibleByIntegerLiteral - 它究竟是如何工作的?

swift - 如何将 NSDate 保存在取自 UITextField 的 CoreData 中