有人可以解释这个Objective-C属性声明的每个字吗?

Zar*_*aki 0 iphone objective-c

我不熟悉Objective-C语法,所以有人可以在下面的代码行中解释每个术语的含义吗?

@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
Run Code Online (Sandbox Code Playgroud)

Vla*_*mir 14

  • @property - 是一种objective-c语法,用于声明和可选地合成实例变量的访问器方法.阅读官方参考了解更多详情.
  • 非原子 - 意味着合成的getter方法将直接返回ivar而不锁定它以保证线程安全
  • retain - 表示ivar将保留在setter方法中
  • readonly - 为类用户设置setter方法"private"的技巧 - 因此编译器只能看到getter方法.通常在实现文件中,使用自定义类别重新声明此属性而不使用readonly属性,以便可以在类本身内部使用setter方法.
  • NSManagedObjectContext* - 变量类型
  • managedObjectContext - 变量名称

再一次 - 这里最好的建议是阅读官方文档中的属性部分......