<4>内存管理--@property的内存管理
1. 对于对象来说:如果用@property自动生成set/get方法的话,系统是不会帮我们带上判断和retain/release的。但我们可以在@property后面加上一个参数 (retain),这样就跟我们写的set/get一样了(有判断,和retain/release)
例如:@property (retain) BOOK *book;
2. 但是dealloc里面的release还是要自己写(因为@property只对set/get有影响,对dealloc没有影响的)
<5>内存管理--@property的参数screen-flow
1. @property的参数分类:
1> 跟内存管理相关的参数
1.retain:release旧值,retain新值
2.assign:直接赋值(默认的,适用于非OC对象类型)
3.copy:release旧值,copy新值
2> 是否要生成set方法(就是只要求生成get方法)
1.readwrite:同时生成setter和getter(默认的)
2.readonly:只会生成getter部分
3> 多线程管理(暂时不要求理解)
1.nonatomic:性能高(但是一般用这个)
2.atomic:性能低(默认的)
4> setter和getter的名称 (自己设置方法名)
1.(getter = “方法名”, setter = “方法名”) // 注意:setter的方法名包含冒号,成员变量名不受影响,还是 ‘_***’
2. BOOL类型的方法名以is开头(规范),可以用上面的第4条来做到
3. 这些参数可以混在一起写,只要不冲突就行