Swift闭包中self为nil

1,688 阅读1分钟
  • 接前任的代码,继续开发,实现了调用第三方QMUIKit,调用从图库中选择图片,然后用用代理回调出来,直接上代码

image.png

最后这样一运行,显示self 为 nil

what,什么情况?,[weak self],这样在swift的闭包,很常见的内存管理机制,没怎么看到self为nil

然后我怀疑是,局部变量的问题,把

let ac = ZLPhotoPreviewSheet(selectedAssets:[])

这句代码变成全局变量,最后打印,还是self为nil

最后解决办法,不写[weak self], 此时self就是有值的,非nil 然后deinit,也打印了出来,无内存问题。

image.png