如何管理从NSCoder返回的已解码对象的内存?

时间:2013-01-15 00:56:14

标签: objective-c memory-management nscoder

我从NSCoder编码中带回了一个根对象,并且不知道如何对这个返回的对象进行内存管理。我用自动释放池包围它,但对象不会与池一起出去。 Code Here, See line 289 线路和代码可能会随着Git Hub提交而改变,但最终你会看到工作代码中的答案,手指交叉。

自:

完全导致解码对象重新分配的保证方法是什么?

2 个答案:

答案 0 :(得分:1)

您正在管理从NSKeyedArchiver.

返回的内存

您需要明确保留它,并在完成后调用release,或立即使用它 - 例如写入文件。

我建议您重新熟悉Memory Management Rules for Objective-C

手动内存管理起初有点棘手,但是一旦掌握了规则,就会使这样的情况变得非常容易。

现在,如果您需要确保立即删除内存,则需要编写自己的二进制序列化程序,该序列化程序将遵循alloc:init模式,以便调用程序显式拥有内存。这样,当您在对象上调用release时,它将被释放。

答案 1 :(得分:0)

NSCoder不属于该发布池。