HandyJSON 我发现有内存泄露。

e5nqia27  于 2023-03-19  发布在  其他
关注(0)|答案(6)|浏览(180)

我发现了一处内存泄露,不知道是我没用好还是库的问题。显示的是闭包的泄露。

var items : [ABHomeModel]?

items = JSONDeserializer.deserializeModelArrayFrom(array: array) as? [ABHomeModel]
就这两句代码,解析是没问题的,但是一旦使用了这个库解析,就会有泄露提示。

8iwquhpp

8iwquhpp1#

你这个 ABHomeModel 是什么?能贴代码出来吗

lkaoscv7

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)

strongSelf.HATableView.reloadData()
            
        }
    }) { (errorMsg) in
        
    }
w9apscun

w9apscun3#

ABHomeModel就是个模型类

import UIKit

class ABHomeModel: BaseModel {

var title: String?

var subTitle: String?

var imageName: String?

var viewController : String?

}
它继承 BaseModel 基类,基类遵守你的HandyJSON类
import Foundation
import HandyJSON
class BaseModel: HandyJSON {

required init() {}

}

gg58donl

gg58donl4#

#199 的确是这里的问题,已经解决我的问题。

mitkmikd

mitkmikd5#

我个人认为,有了Swift 4内置的JSON解析,没有必要用这个库。在经历了各种bug,崩溃后,我停用HandyJSON,把代码全部转用内置的Codable
你们有什么特别的理由,要继续用HandyJSON? @myworldhere@Jasonisxu

7xllpg7q

7xllpg7q6#

@yichizhang ,感谢你的建议,我刚刚试了Codable,的确很好用。我之前没注意到swift 4的这个新特性。

相关问题