Objective-C 关键字:retain, assgin, copy, readonly,atomic,nonatomic 声明式属性的使用:声明式属性叫编译期语法 @property(retain,nonatomic)Some *s; @property(参数一,参数二)Some *s;

@property(retain,nonatomic)Some *s;

@property(参数一,参数二)Some *s;

参数1:retain:修饰引用(对象)数据类型 assgin:修饰基本数据类型(默认) copy:一些对象需要复制才能使用NSString readonly:只读,只有setter方法,没有getter方法


参数2:保证多线程的安全性 atomic:原子性 线程是安全的,但效率低(默认) nonatomic: 非原子性 线程是不安全的,但效率高

 

@property的修饰符介绍:


  1、readonly:只读,只生成getter方法,没有setter方法。


  2、 readwrite:可读写,会生成setter和getter方法,默认是readwrite


  3、nonatomic:不需要考虑数据同步,单线程应用程序中效率较高


  4、atomic:需要考虑线程同步,效率低,默认是这种。


  与内存管理相关:
  5、assign:直接赋值,一般用于int、float、double、long等基本类型


  6、retain:一般用于对象


  7、copy:一般用于字符串


  8、默认是readwrite、atomic、assign