Swift 解码数组自定义 Class 内存泄漏

Swift Decode Array Custom Class Memory Leak

我正在使用 NSCoding 保存我的应用程序配置,并且在使用 DecodeWithKey 时在 Instruments 中出现泄漏。

设置有一个 属性 stsSettings

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

stsSettings 有一个 属性 数组 StsVariables

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

泄漏的对象# 地址大小 负责库 负责框架 StsVariable 1 0x7fe182d494f0 192 字节基础 _decodeObjectBinary

Settings 也有一个 属性 conversions,它是一个 Conversion 对象数组,它不会泄漏,所以我不知道发生了什么。

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

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