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