OC iOS中的Copy

目录

  • 作为关键词的时候
  • 作为函数的时候

作为关键词的时候

@property (nonatomic ,readwrite, strong) NSArray *array;
对赋值的对象进行内容的拷贝,与strong相反,strong是对引用拷贝,即同一引用。

作为函数的时候

[immutableObject copy] // 浅复制
[immutableObject mutableCopy] //深复制
[mutableObject copy] //深复制
[mutableObject mutableCopy] //深复制

NSString、NSArray、NSDictionary
调用copy,是对其对象指针的赋值
调用mutableCopy,是对其内容的赋值

NSMutableString、NSMutableArray、NSMutableDictionary
调用copy和mutableCopy,都是对其内容的赋值

如果strong关键词标识,但遇到mubleObject的copy会怎么样?

@property (nonatomic ,readwrite, strong) NSArray *array;
 NSArray *array = @[ @1, @2, @3, @4 ];
 NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:array];
   
[mutableArray addObjectsFromArray:array];

self.array = [mutableArray copy];
[mutableArray removeAllObjects];;
NSLog(@"%@",self.array);

array与mutableArray地址不一样,它们的对引用的对象进行操作,互不影响。

你可能感兴趣的:(OC iOS中的Copy)