【发布时间】:2011-09-26 07:45:41
【问题描述】:
我有一个 MyObjects 的 NSArray。
我想复制数组的最后一个对象。换句话说,我想在数组中添加一个与上一个完全相同的新对象。
我试过了:
id object = [[self arrangedObjects] lastObject];
id newObject = [object copy];
但我意识到我不能使用复制方法,因为它没有在 NSObject 中实现。
我是否应该在 MyObject 类中实现复制方法,返回一个新的 MyObject 实例并更改代码如下:
MyObject object = [[self arrangedObjects] lastObject];
MyObject newObject = [object copy];
或者还有其他解决方案吗?
更新 来自 NSObject 文档
NSObject 本身不支持 NSCopying 协议。子类 必须支持协议并实现 copyWithZone: 方法。一种 copyWithZone: 方法的子类版本应该发送消息 to super first, 合并它的实现,除非子类 直接从 NSObject 继承。
【问题讨论】:
标签: objective-c nscopying