一、怎么使用copy关键词
1、NSString、NSArray、NSDictionary 等等经常使用copy关键词。是因为他们有对应的可变类型:NSMutableString、NSMutableArray、NSMutableDictionary ;他们之间可能进行赋值操作,为了确保对象中的字符串值不会无意间的变动,应该在设置新属性时拷贝一份。
2、block也使用copy
二、@property (nonatomic ,copy) NSMutableArray *ddArr 这样写有什么问题?
1、添加、删除、修改数组内的元素的时候,程序会因为找不到对应的方法二崩溃,因为copy一个可变数组的结果是一个不可变数组;
2、使用了atomic 属性会严重影响性能;
三、如何让自己的类用copy修饰符,即让自己的对象具有拷贝能力
1、需要声明该类遵从NSCopying或NSMutableCopying协议
2、实现NSCopying协议。该协议只有一个方法
-(id)copyWithZone:(NSZone*)zone;
网友评论