美文网首页
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