本帖最后由 于清扬 于 2014-4-14 13:07 编辑
使用@property定义属性时,使用:
copy 生成的setter方法 release旧值,copy新值,一般用于oc字符串和block
- - (void)setName:(NSString *)name
- {
- if (_name != name) {
- [_name release];
- _name = [name copy];
- }
- }
复制代码
retain 生成的setter方法 release旧值,retain新值,用于oc对象
- - (void)setDog:(Dog *)dog
- {
- if (_dog != dog) {
- [_dog release];
- _dog = [dog retain];
- }
- }
复制代码
assign 生成的setter方法 直接赋值,用于基本数据类型。特殊的情况下,循环引用的时候,一端用retain,一端用assign.
- - (void)setAge:(int)age
- {
- _age = age;
- }
复制代码 |