目录
- 作为关键词的时候
- 作为函数的时候
作为关键词的时候
@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地址不一样,它们的对引用的对象进行操作,互不影响。
网友评论