美文网首页
mutableCopy、copy

mutableCopy、copy

作者: tinghua | 来源:发表于2016-06-20 14:25 被阅读36次
  1. mutableCopy 创建一个新的可变对象,并初始化为原对象的值,新对象的引用计数为 1;
  2. copy 返回一个不可变对象。分两种情况:
    (1)若原对象是不可变对象,那么返回原对象,并将其引用计数加 1 ;
    (2)若原对象是可变对象,那么创建一个新的不可变对象,并初始化为原对象的值,新对象的引用计数为 1。

@interface ViewController (){

MyClass *myClass;

}

@property (nonatomic,copy) NSMutableArray *var;
@end

@implementation ViewController

pragma mark 重写set方法,进行mutableCopy

-(void)setVar:(NSMutableArray *)var{
if (_var!=var) {
_var=[var mutableCopy];
}
}

  • (void)viewDidLoad {
    [super viewDidLoad];

    NSMutableArray *items=[NSMutableArray array];

    //@property 为copy时,默认进行[items copy]为NSMutableArray对象,然后进行[NSMutableArray copy]为不可变对象
    self.var=items;
    //对不可变进行添加操作报错
    [_var addObject:@"1"];

    NSLog(@"items=%p,copyItems=%p",items,_var);
    }

相关文章

网友评论

      本文标题:mutableCopy、copy

      本文链接:https://www.haomeiwen.com/subject/lauwdttx.html