NSArray 上的 Swift 内存泄漏

Posted

技术标签:

【中文标题】NSArray 上的 Swift 内存泄漏【英文标题】:Swift Memory Leak on NSArray 【发布时间】:2015-09-21 09:05:20 【问题描述】:

我正在使用单例模式和 Swift 编程语言开发应用程序。当我使用 Instruments 分析应用程序时,我注意到存在指向 NSArray 的内存泄漏。 Instruments 指向以下代码行(请查看屏幕截图)。谁能找到泄漏发生的原因?我试图将数组 Workout 初始化为:

workout = []

没有报告泄漏。也许它与取消归档有关?

【问题讨论】:

你应该检查这个:***.com/questions/24024549/… 以便在 Swift 中获得正确的单例模式。 【参考方案1】:

在此处查看此答案:Swift Decode Array Custom Class Memory Leak 这似乎是一个错误。我也有同样的问题。所以不要直接将值分配给workout,你可以这样做:

if let wo = NSKeyedUnarchiver.unarchiveObjectWithFile(Utilities.getFileURL("workout")) as? [ExceciseObject] 
    workout = wo.map  $0 

【讨论】:

以上是关于NSArray 上的 Swift 内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章

iPhone SDK 中的 NSMutableArray、NSArray、NSString 内存泄漏

自动释放的 NSArray 会导致内存泄漏吗?

根据仪器的iOS内存泄漏

iOS swift 3中的内存泄漏

内存泄漏,在do-catch块中。 iOS,Swift

为啥在 swift 中创建字符串时会出现内存泄漏?