- 闭包 A 里嵌套闭包 B 时需要注意⚠️的点:
不要在闭包 B 里使用闭包 A 里的局部变量,会导致 weak self 为 nil
- 解决办法:
let viewController = dependencies.friendListViewController { friendListViewController, shareInfo in
friendListViewController.dismiss(animated: true) { [weak self] () -> Void in
if let element = self?.element {
self?.dependencies
.face2FaceDIContainer(shareInfo: shareInfo)
.face2FaceFlowCoordinator(element: element)
.start()
}
}
}
- 疑惑🤔:
- 内层闭包作用——在关闭 friendListViewController 弹窗后弹出一个新的弹窗
- 但,当 self 为 nil 时,会出现 friendListViewController 弹窗直接关闭的情况。这个地方感觉处理的不是特别合适,但是目前没有想到更好的方法…
- 有没有更好的处理方法?