我們縣回憶一下copy屬性的作用,一個屬性標記了copy,當你調(diào)用他的setter方法,他會建立一個索引計數(shù)為1的對象,然后釋放舊對象。
@property (copy) NSMutableArray * a;
NSMutableArray* b = [NSMutableArray array];
a = b;
等同于
@property (strong) NSMutableArray * a;
NSMutableArray* b = [NSMutableArray array];
a = [b copy];
所以你的a根本就是一個NSArray,所以報了
-[__NSArray0 removeAllObjects]: unrecognized selector sent to instance 0x14e14970
未找到實例方法的錯誤。因為NSArray沒有removeAllObjects方法。
正確的寫法應(yīng)該是不用copy屬性
@property (strong) NSMutableArray * a;
NSMutableArray* b = [NSMutableArray array];
a =? [b mutableCopy];
這里的b可以是NSMutableArray也可以是NSArray;