天天看點

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