首页 > @property (nonatomic, copy) NSString *name; 重写 setter 方法

@property (nonatomic, copy) NSString *name; 重写 setter 方法

IOS中,ARC环境下 @property (nonatomic, copy) NSString *name; 重写该属性的setter方法时,要不要在setter方法内执行copy操作?如果执行copy操作,那么是不是不符合内存管理的原则了?因为显示调用了copy,难道不用显示的执行一次release/autorelease,但是ARC中,release和autorelease是不能用的?下面那种写法比较合理?(注意:ARC 环境下)
第一种:

第二种:


不用这么麻烦,直接这样就够了:

- (void)setName:(NSString *)name {
    _name = [name copy];
}

至于内存管理这些,ARC 都帮你管理好了,你不需要 release 也不需要 autoRelease。

【热门文章】
【热门文章】