仪器显示这些代码行导致内存泄漏,我做错了什么?
required init(data: JSON) {
self.type = data["type"].stringValue
self.name = data["name"].stringValue
self.numberOfRestaraunts = data["length"].intValue
self.isFavourited = data["isFavourited"].boolValue
self.image = URL(string: data["img"].stringValue)! //<- this
self.id = data["id"].stringValue
self.headerImage = URL(string: data["header"].stringValue)! //<- this
if data["colorSchema"].stringValue == "Dark" {
self.colorTheme = .dark
} else {
self.colorTheme = .light
}
self.color = data["color"].stringValue
self.metaScore = data["metaScore"].intValue
self.typeMetaScore = data["typeMetaScore"].int ?? 0
}它实际上表明,泄漏是NSURL类。
编辑:截图:


发布于 2017-03-10 20:59:07
您正在强制展开可选对象。尝试将行self.image = URL(string: data["img"].stringValue)!更改为
if let url = URL(string: data["img"].stringValue) {
self.image = url
}这条self.headerImage = URL(string: data["header"].stringValue)!代码行
if let url = URL(string: data["header"].stringValue) {
self.headerImage = url
}强制展开不是一个好的做法,你应该尽可能避免它。希望这能有所帮助!
发布于 2017-03-10 20:59:41
你能试试这个吗?
if let image_url = URL(string: data["img"].stringValue)
{
self.image = image_url
}...and这个也是...
if let header_url = URL(string: data["header"].stringValue)
{
self.headerImage = image_url
}您是否可以检查JSON类型subscript是否返回Optional
https://stackoverflow.com/questions/42718307
复制相似问题