-copy, as implemented by mutable Cocoa classes, always returns their immutable counterparts. Thus, when an NSMutableArray is sent -copy, it returns an NSArray containing the same objects.
实测:
1
2
3
4
5
6 |
@property ( nonatomic , copy ) NSMutableArray
*arrayCopy; @property ( nonatomic ,strong) NSMutableArray
*arrayStrong; self .arrayCopy=[[ NSMutableArrayalloc ]init]; self .arrayStrong=[ NSMutableArrayarrayWithArray :@[@ "strong1" ,@ "strong2" ]]; [ self .arrayCopy addObject:@ "copy1" ]; [ self .arrayStrong addObject:@ "strong3" ]; |
报错:
-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x100107090
而arrayStrong则不会错
给NSMutableArray添加copy属性就变成了NSArray,布布扣,bubuko.com
给NSMutableArray添加copy属性就变成了NSArray
原文:http://www.cnblogs.com/walkerwang/p/3571865.html