[swift-users] Memory Leak of Dictionary used in singleton

Ekaterina Belinskaya kate.belinskaya at gmail.com
Sat Mar 11 18:04:14 CST 2017


Hi everyone!

I have singleton. It contains a 2 dictionaries. 

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
On using the leaks tool, I am getting a memory leak of the second dictionary(String, String).

screenshot of memory graph debugger <http://imgur.com/a/JRcGd>

If i remove dictionaries and write smth like that:

class Singleton {
    
    static let sharedInstance = Singleton()
    var num: Int
    
    init() {
        num = 3
    }
}
leak disappears.

Could someone, please, explain why this happens?

Thanks for the help.

Kate
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170311/9c5bdc59/attachment.html>


More information about the swift-users mailing list