我发现了一处内存泄露,不知道是我没用好还是库的问题。显示的是闭包的泄露。
var items : [ABHomeModel]?
items = JSONDeserializer.deserializeModelArrayFrom(array: array) as? [ABHomeModel]就这两句代码,解析是没问题的,但是一旦使用了这个库解析,就会有泄露提示。
8iwquhpp1#
你这个 ABHomeModel 是什么?能贴代码出来吗
lkaoscv72#
NetAPIManager.sharedManager.requestWithTarget(.api_History_AddressList, successClosure: {[weak self] (result, code) inif let strongSelf = self{
// 内存泄漏??还是我写法有问题strongSelf.historyAddressInfo = HistoryAddressInfo.deserialize(from: result as? Dictionary)
strongSelf.HATableView.reloadData() } }) { (errorMsg) in }
w9apscun3#
ABHomeModel就是个模型类
import UIKit
class ABHomeModel: BaseModel {
var title: String? var subTitle: String? var imageName: String? var viewController : String?
}它继承 BaseModel 基类,基类遵守你的HandyJSON类import Foundationimport HandyJSONclass BaseModel: HandyJSON {
required init() {}
}
gg58donl4#
#199 的确是这里的问题,已经解决我的问题。
mitkmikd5#
我个人认为,有了Swift 4内置的JSON解析,没有必要用这个库。在经历了各种bug,崩溃后,我停用HandyJSON,把代码全部转用内置的Codable你们有什么特别的理由,要继续用HandyJSON? @myworldhere@Jasonisxu
7xllpg7q6#
@yichizhang ,感谢你的建议,我刚刚试了Codable,的确很好用。我之前没注意到swift 4的这个新特性。
6条答案
按热度按时间8iwquhpp1#
你这个 ABHomeModel 是什么?能贴代码出来吗
lkaoscv72#
NetAPIManager.sharedManager.requestWithTarget(.api_History_AddressList, successClosure: {[weak self] (result, code) in
if let strongSelf = self{
// 内存泄漏??还是我写法有问题
strongSelf.historyAddressInfo = HistoryAddressInfo.deserialize(from: result as? Dictionary)
w9apscun3#
ABHomeModel就是个模型类
import UIKit
class ABHomeModel: BaseModel {
}
它继承 BaseModel 基类,基类遵守你的HandyJSON类
import Foundation
import HandyJSON
class BaseModel: HandyJSON {
}
gg58donl4#
#199 的确是这里的问题,已经解决我的问题。
mitkmikd5#
我个人认为,有了Swift 4内置的JSON解析,没有必要用这个库。在经历了各种bug,崩溃后,我停用HandyJSON,把代码全部转用内置的Codable
你们有什么特别的理由,要继续用HandyJSON? @myworldhere@Jasonisxu
7xllpg7q6#
@yichizhang ,感谢你的建议,我刚刚试了Codable,的确很好用。我之前没注意到swift 4的这个新特性。