Objective c中这些@properties的区别是什么?

时间:2011-12-14 16:56:39

标签: objective-c properties retain

atomicnonatomic属性之间有什么区别,它与保留它有什么关系?

我知道this website中定义的@property(retain)是什么:@property是一个声明属性的Objective-C指令。括号中的“保留”指定setter应保留输入值,而行的其余部分仅指定属性的类型和名称。

所以@property(retain)做了上面所说的,但是非原子/原子如何与retain属性一起工作?

@property(nonatomic, retain)
@property(atomic, retain)

1 个答案:

答案 0 :(得分:2)

retainatomic / nonatomic是正交的,这意味着它们的任何组合都是有效的。 retain表示对象与其保留属性之间存在强关联(即,当该对象指向该属性时,不应释放该属性引用的对象)。 atomic / nonatomic表示应该或不应该同步对属性的访问。这是great explanation of the atomic/nonatomic

请注意,只有在使用@synthesize

时,所有这些才有意义