一. @property的修饰关键字
1> 控制set方法的内存管理
* retain: release旧值,retain新值(用于OC对象),要配合nonatomic使用 * assign: 直接赋值, 不做任何内存管理(默认, 用于非OC对象类型)
* copy: release旧值, copy新值(一般用于NSString *) 2> 控制是否需要生成set方法
* readwrite: 同时生成set方法和get方法(默认) * readonly: 只会生成get方法 3> 多线程管理
* atomic: 性能低(默认)
* nonatomic: 性能高(为iOS系统开发软件建议使用,为mac开发软件可以使用atomic) 4> 控制set方法和get方法的名称
* setter: 设置set方法的名称, 一定有个冒号: * getter: 设置get方法的名称 二. @class用法
* 为什么要使用@class .h @class Dog .m #import "Dog.h"
* @class和#import的区别
* 通过@class解决循环依赖问题 三. 内存管理时的循环retain问题
* 解决办法: 一端用retain、一端用assign
** 注意: 使用了assign后, dealloc中就不需要release了
|