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

时间:2011-01-10 11:56:52

标签: iphone objective-c

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

@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;

3 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:0)

只读访问器意味着只合成了getter方法。该值是只读的。

保留访问器意味着此类保留指针,前一个值被释放

非原子访问器意味着没有锁定应用于合成的getter

@property显示此成员进行综合,以便可以创建getter / setter。没有它,您将不得不直接访问该物业。

NSManagedObjectContext是一种对象/类,* managedObjectContext是指向该对象实例的指针。

答案 2 :(得分:0)

弗拉基米尔是对的。

但我会建议你先阅读Objective-C 2.0 reference首先。