给NSMutableArray添加copy属性就变成了NSArray

-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.

一些参考:http://stackoverflow.com/questions/9859719/objective-c-declared-property-attributes-nonatomic-copy-strong-weak

实测:

@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则不会错

posted @ 2014-02-27 16:50  $walker  阅读(632)  评论(0编辑  收藏  举报