objective-c – 声明@synthesize时的单和双下划线差异
发布时间:2020-12-14 19:34:20 所属栏目:百科 来源:网络整理
导读:在最近的 Xcode 4.3项目模板中,一些@synthesze被声明为: @synthesize window = _window;@synthesize managedObjectContext = __managedObjectContext;@synthesize managedObjectModel = __managedObjectModel;@synthesize persistentStoreCoordinator = __p
在最近的
Xcode 4.3项目模板中,一些@synthesze被声明为:
@synthesize window = _window; @synthesize managedObjectContext = __managedObjectContext; @synthesize managedObjectModel = __managedObjectModel; @synthesize persistentStoreCoordinator = __persistentStoreCoordinator; @synthesize navigationController = _navigationController; 有些带有双下划线(__)作为前缀.为什么? 与readonly属性有什么关系? @property (strong,nonatomic) UIWindow *window; @property (readonly,strong,nonatomic) NSManagedObjectContext *managedObjectContext; @property (readonly,nonatomic) NSManagedObjectModel *managedObjectModel; @property (readonly,nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator; @property (strong,nonatomic) UINavigationController *navigationController; 解决方法
如果它们打算用在你自己的程序中,它们可能不应该使用双下划线.我希望这只是对编写该模板示例的人的疏忽.在实践中,它们不太可能导致任何问题.
C标准保留所有标识符,以双下划线开头,以供实现自己使用.由于Objective-C是C的超集,因此您不应该在Objective-C程序中使用这些标识符.从C规范,第7.1.3节保留标识符:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |