创建NSObject的副本

时间:2010-09-13 01:19:56

标签: iphone objective-c copy nsarray

如何使用我设置了所有属性的NSObject,然后将其复制到阵列可以使用的另一块内存中,以便我可以重新使用原始内存?

2 个答案:

答案 0 :(得分:7)

简而言之,你没有。

如果你想把对象放在一个数组中,然后创建一个新对象,那就完全按照; addObject:到数组,alloc/init到新数组。

如果你问的是如何将一个对象复制到一个随机的malloc()块中 - 比如说,在一个数组的中间 - 那么这是一个非常不同的问题。 可以在技术上完成,但基本上没有人这样做,因为框架和运行时不是为此而设计的。

如果不了解您的具体需求,就无法详细了解。

答案 1 :(得分:7)

通过向copy消息发送对象来制作对象的副本。这仅适用于实现NSCopying协议的类的实例。

阅读Implementing Copy以获得良好的概述。然后阅读Implementing NSCopying Considered Harmful以获取更多背景信息。