我有一个 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: 方法的子类版本应该首先向 super 发送消息,以合并其实现,除非子类直接来自 NSObject。