Instrumentsによると、私のiOSアプリケーションはメモリをリークしています。 Swift Base64の文字列がメモリをリークしています
私はこれが何を引き起こしているのかを探していて、明らかにSwiftは25000文字のbase64文字列を好まないのです。私は、コマンドラインで
leaks Application
を実行すると、私は次のエラーが表示されます
Leak: 0x7fd8a510b600 size=25088 zone: MallocHelperZone_0x11cc7a000 CFString ObjC CoreFoundation length: 24708
私はUIImageにbase64文字列をオンにする次のコードを使用します。
// MARK: Initialization
init?(id: Int, name: String, logo: Any) {
self.id = id
self.name = name
if logo is String {
var logo = logo as! String
// Swift can't handle the data:image/png;base64, part of the base64 string so we remove it
if let range = logo.rangeOfString(";base64,", range: logo.startIndex..<logo.endIndex) {
logo.removeRange(logo.startIndex..<range.endIndex)
// Lets turn it into an UIImage
let imageData = NSData(base64EncodedString: logo, options: NSDataBase64DecodingOptions(rawValue: 0))
if imageData != nil {
self.logo = UIImage(data: imageData!)!
}
}
} else if logo is UIImage {
self.logo = logo as? UIImage
} else {
self.logo = UIImage()
}
super.init()
}
誰かがこの問題をどのように解決できるのか考えていますか?
... –