NSCopyObject
这是二进制拷贝,也就是说对于值类型可以省去赋值的过程(当然也包括NSString*这个指针中的异类)
指针则需要自己进行操作,或者retain、或者赋值。假设基类多了一个指针成员:
- (id)copyWithZone : (NSZone*)zone { } |
于子类来说,一定要知道父类的copyWithZone实现才能决定用什么方式copy:
- (id)copyWithZone : (NSZone*)zone {
//[clone setLanguage:[self language]]; //不再需要,父类实现了NSCopyObject()
注:1、NSCopyObject复制指针时,retain不变,所以不能在原有的指针上进行操作,会导致retain错乱
所以,综上所述,对于指针,需要置nil,然后赋值