@property (nonatomic,copy)XXX* xxx ;
新手遇难,在属性声明中使用copy 结果程序崩了。
报错:
unrecognized selector sent to instance
都不知道哪儿出问题。
最后找到 XXX 类 不能用copy修饰。
其它网友策略。
@property内存管理策略的选择 1.非ARC 1> copy : 只用于NSStringlock; 2> retain : 除NSStringlock以外的OC对象; 3> assign : 基本数据类型、枚举、结构体(非OC对象),当2个对象相互引用,一端用retain,一端 用assign。 2.ARC 1> copy : 只用于NSStringlock; 2> strong : 除NSStringlock以外的OC对象; 3> weak : 当2个对象相互引用,一端用strong,一端用weak; 4> assgin : 基本数据类型、枚举、结构体(非OC对象)。
其实说的不一定对,其它对象也有使用copy的时候。
在OC中,若要进行对象的拷贝,则该对象所属的类必须遵守NSCopying和NSMutableCopy协议,
并重写copyWithZone:和mutableCopyWithZone:方法。而系统原生类,之所以可以直接进行拷贝
是因为它已帮我们自动做了这些事。