//联系人:石虎QQ:1224614774昵称:嗡嘛呢叭咪哄
一、概念
copy属性的作用,一个属性标记了copy,当你调用他的setter方法,他会建立一个索引计数为1的对象,然后释放旧对象。
strong性的作用,强指针
二、代码测试
1.错误方法一
@property(copy) NSMutableArray * arrayCopy;//声明 copy
NSMutableArray*arrayStrong =[NSMutableArrayarray];//初始化
arrayCopy =arrayStrong;
2.错误方法二
@property(strong) NSMutableArray *arrayCopy;/声明 strong
NSMutableArray *arrayStrong = [NSMutableArray array];/初始化
arrayCopy = [arrayStrong copy];
注意:错误方法一 和 错误方法二是相同的,等价的;
3.结果
所以你的arrayCopy根本就是一个NSArray,所以报了
-[__NSArray0 removeAllObjects]: unrecognized selector sent to instance0x14e14970
未找到实例方法的错误。因为NSArray没有removeAllObjects方法。
4.正确的写法应该是不用copy属性
@property(strong) NSMutableArray * arrayCopy;
NSMutableArray* arrayStrong = [NSMutableArray array];
arrayCopy = [arrayStrong mutableCopy];
这里的arrayStrong可以是NSMutableArray也可以是NSArray;