美文网首页
copy和strong的区别

copy和strong的区别

作者: ios___developer | 来源:发表于2017-07-13 09:04 被阅读0次
    • strong修饰NSMutableArrayNSArray,无论赋值给它NSArray对象或者NSMutableArray都是对象都是浅拷贝
    @property (nonatomic, strong) NSArray *sArray;
    @property (nonatomic, strong) NSMutableArray *sMulArray;
    //
    //
    NSArray *array = @[@"a"];
    self.sArray = array;
    //浅拷贝,仅仅指针指向array对象
    
     NSMutableArray *mulArray = [NSMutableArray arrayWithObject:@"aMul"]
    self.sArray = mulArray;
    self.sMulArray = mulArray;
    //浅拷贝, 指针指向mulArray
    
    • copy修饰NSMutableArrayNSArray
      • 给它赋值可变对象深拷贝, 创建一个NSArray对象,并指向它。
      • 赋值不可变对象,浅拷贝,仅仅指针指向赋值对象。
    @property (nonatomic, copy) NSArray *cArray;
    @property (nonatomic, copy) NSMutableArray *cMulArray;
    //
    //
    NSArray *array = @[@"a"];
    self.cArray = array;
    //浅拷贝, 指针指向array对象
    NSMutableArray *mulArray = [NSMutableArray arrayWithObject:@"m"];
    self.cArray = mulArray;  
    self.cMulArray = mulArray;
    //深拷贝, 都会创建一个新的不可变对象
    //相当于self.cArray = [NSArray arrayWithObject:@"m"];
    //     self.cMulArray = [NSArray arrayWithObject:@"m"];
    
    • NSString使用copy和strong修饰同理

    相关文章

      网友评论

          本文标题:copy和strong的区别

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