Iphone copyWithZone发行
我试图通过以下操作复制UIViewController子类:Iphone copyWithZone发行,iphone,objective-c,ipad,nscopying,Iphone,Objective C,Ipad,Nscopying,我试图通过以下操作复制UIViewController子类: BookViewController *bookVC = [catalogFlatViewController copy]; 我有以下错误: '-[BookViewController copyWithZone:]: unrecognized selector sent to instance 0x8e5f00' UIViewController不符合NSCopying。如果要复制,必须使用NSCoding: NSData *ar
BookViewController *bookVC = [catalogFlatViewController copy];
我有以下错误:
'-[BookViewController copyWithZone:]: unrecognized selector sent to instance 0x8e5f00'
UIViewController
不符合NSCopying
。如果要复制,必须使用NSCoding
:
NSData *archive = [NSKeyedArchiver archivedDataWithRootObject:controller];
UIViewController *newController = [NSKeyedUnarchiver unarchiveObjectWithData:archive];
如果已将新IVAR添加到视图控制器,则必须重写NSCoding
方法(encodeWithCoder:
和initWithCoder:
)才能正确序列化和反序列化这些IVAR。看
顺便说一句,这基本上就是nib文件的工作原理。请参阅以下帖子中的@Caleb answer: Caleb的答案如下所示 UIViewController未实现NSCopying协议。除非 您已经在自己的UIViewController子类中实现了NSCopying, 视图控制器不会响应
-copyWithZone:
有关更多信息,请参阅
但我建议您不要实施NSCopying协议参考,因为@RobNapier在
希望这对您有所帮助。可能的副本