天天看点

iOS property 属性修饰符 copy 的一个知识点 笔记

题目

@property (nonatomic,    copy) NSMutableArray *array;

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"1", @"2", nil];
self.array = array;
[self.array addObject:@"3"];

NSLog(@"array = %@", array);
NSLog(@"self.array = %@", self.array);      

分析

​copy​

​​ 修饰符,会在 setter 方法内,对传入的参数进入拷贝,生成一份新内存,然后赋值。

这点想到了,还有印象。

但是,最终结果是:​

​崩溃!​

​ 没有输出。

崩溃日志:

-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x600003cd0780