object-c 学习:@property (nonatomic,retain) 中的 nonatom 和 retain 的意思

@property(nonatomic,retain) NSString *aString;
property:属性的定义,相当于 C 语言的 setter 和 getter 方法。
assign:简单的赋值,不更改索引的计数。
copy: 建议一个索引计数为 1 的对象,然后释放旧对象;

retain:释放旧对象,将旧对象的值赋予新对象,再增加新对象的索引计数 1。



针对具体的数据类型在属性定义应该这样选择:
使用 assign:对基础的数据类型,比如 NSInterger,CGFloat 和 C 数据类型(int,float,double,char 等等)。
使用 copy:针对 NSString;
使用 retain:针对 NSObject 及其子类。
使用 nonatomic:单线程,防止在写未完成的时候被另外一个线程读取,造成数据读取出错。
使用 release:基于一般的初始化,使用 alloc 和 init 关键词初始化的,要在恰当的地方 release 掉,全局变量在 dealloc 方法里面 release,常规变量在不需要的时候就要释放掉。

你可能感兴趣的:(oc)