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
eskimo
(Quinn “The Eskimo!”)
March 13, 2017, 8:16am
2
In general a leak that you can reproduce with simple code snippets like this is Just a Bug™, and you should file it as such. It would help if you included a runnable test project that reproduces the problem.
<Issues · apple/swift · GitHub ;
Please post your bug number, just for the record.
Share and Enjoy
···
On 12 Mar 2017, at 00:04, Ekaterina Belinskaya via swift-users <swift-users@swift.org> wrote:
Could someone, please, explain why this happens?
--
Quinn "The Eskimo!" <http://www.apple.com/developer/> ;
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
Joe_Groff
(Joe Groff)
March 24, 2017, 8:48pm
3
This sounds a lot like:
[SR-3661] Memory Leak from Multiple Dictionary Properties · Issue #46246 · apple/swift · GitHub Memory Leak from Multiple Dictionary Properties
which was fixed in Xcode 8.3. What version of the compiler are you using?
-Joe
···
On Mar 11, 2017, at 4:04 PM, Ekaterina Belinskaya via swift-users <swift-users@swift.org> wrote:
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?