3

当 XCode 在 Apple 的模板中创建 synthesize 语句时,您会看到如下内容:

@synthesize ivar=_ivar;

所以我得到了一个下划线,以及你如何以不同于属性的方式命名 ivars,以确保你不会意外访问它们,等等......

我刚刚开始了一个核心数据项目,在模板创建的语句中,我有:

@synthesize managedObjectContext=__managedObjectContext;

@synthesize managedObjectModel=__managedObjectModel;

@synthesize persistentStoreCoordinator=__persistentStoreCoordinator;

为什么与核心数据相关的 ivar 名称使用双下划线?这只是Apple语法吗?不确定是否还有更多内容,以及是否需要注意 - 谷歌不是很有帮助。

谢谢!

4

2 回答 2

4

Objective C 编译器将所有变量名视为相同,因此双下划线只是一种约定。但是,后跟大写字母的双(或单)下划线保留供编译器使用。

另外,检查这个问题的答案,它们比我能解释的更深入。

于 2011-09-20T02:21:15.393 回答
4

前导双下划线应该专门保留给编译器和语言库。然而,Apple 决定也将它们用于 Core Data。我们普通的开发人员不应该使用双前导下划线。

于 2011-09-20T02:53:24.280 回答