Swift解码阵列自定义类内存泄漏

时间:2016-03-17 14:52:17

标签: arrays swift memory-leaks nscoding

我使用NSCoding保存我的应用配置,并且在使用DecodeWithKey时,我在仪器中出现泄漏。

设置有一个属性stsSettings

stsSettings = (aDecoder.decodeObjectForKey("stsSettings") as! StsSettings)

stsSettings有一个属性数组StsVariables

stsVariables = (aDecoder.decodeObjectForKey("stsVariables") as! [StsVariable])

泄露的对象#地址大小负责的图书馆负责框架 StsVariable 1 0x7fe182d494f0 192字节基础_decodeObjectBinary

设置还有一个属性转换,它是一个转化对象数组,这不会泄漏,所以我无法解决正在发生的事情。

1 个答案:

答案 0 :(得分:4)

在类似情况下我遇到了内存泄漏。我通过将解码的数组分配给局部变量并将元素复制到属性来解决了这个问题。但是,我不知道为什么首先会出现内存泄漏。

let variables = (aDecoder.decodeObjectForKey("stsVariables") as! [StsVariable])
stsVariables = [StsVariable]()
for variable in variables {
    stsVariables += [variable]
}