我AchievementViewController
没有得到从内存中释放,除非我在下面注释掉功能
NetworkConnection.achievementList(for: -1) { [weak self] response in
guard let sections = response.object as? [AchievementListSection] else {
return print("Network failure")
}
self?.sections = sections
self?.configureCollectionView()
}
该函数的定义在下面,在这里,我们目前仅使用延迟的异步调用来发送存根响应。
static func achievementList(for identifier: Int64, responseHandler: RequestResponseClosure?) {
let stubResponse = ResponseObject(object: AchievementListSection.exampleList as NSArray, code: .success)
let randomDelayMilliseconds = Int(arc4random_uniform(1000))
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(randomDelayMilliseconds)) {
responseHandler?(stubResponse)
}
}
自我保留在何处以在这里创造一个循环?它作为weak
参考传递给NetworkConnection闭包,而当将此闭包传递给DispatchQueue
我时,我希望它在延迟过去之后释放。
尝试对此行发表评论
self?.configureCollectionView()
mb这就是问题所在,因为[weak self]
足以在此闭包中保留修复程序
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句