Swift中weak与unowned的区别

释放双眼,带上耳机,听听看~!

在闭包里面为了解决循环引用问题,使用了 `[unowned self]`。如果回调在self已经被释放后再调用,会导致crash掉。

解决:使用weak修饰。

weak与unowned的区别:

unowned设置以后即使它原来引用的内容已经被释放了,它仍然会保持对被已经释放了的对象的一个 “无效的” 引用,它不能是 Optional 值,也不会被指向 nil 。如果你尝试调用这个引用的方法或者访问成员属性的话,程序就会崩溃。而 weak 则友好一些,在引用的内容被释放后,标记为 weak 的成员将会自动地变成 nil (因此被标记为 @ weak 的变量一定需要是 Optional 值)。

人已赞赏
iOS文章

ios 浏览器控件UIWebView使用

2020-2-15 20:26:33

iOS文章

iOS全局侧滑返回

2020-2-15 21:55:46

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索