-copy, as implemented by mutable Cocoa classes, always . Thus, when an NSMutableArray is sent -copy, it returns an NSArray containing the same objects.
一些参考:
实测:
@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则不会错