单例中使用的字典的内存泄漏

时间:2017-03-11 22:40:38

标签: ios swift dictionary memory-leaks singleton

我有单身人士。它包含2个词典。

struct Stat {
    var statHash:String
    var displayDescription:String
    var displayName:String
    var displayIcon:String
    var statIdentifier:String
}

class Singleton {

    static let sharedInstance = Singleton()

    var statsDesc = [String:Stat]()
    var test = [String: String]()

    init() {
        test["a"] = "b"
    }
}

let singlton = Singleton.sharedInstance

使用泄漏工具时,我收到第二个字典(String,String)的内存泄漏。

enter image description here

有人可以解释为什么会这样吗?

Link to the project on dropbox

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

实际上,单身就是泄密。由于单例拥有对自身的引用,因此它永远不会被释放,也不会释放它的任何属性。

Leaks工具指出{{1}}超出范围,但分配的内存未释放,因此标记了泄漏。然而,在这种情况下,泄漏正是您想要的。