iOS 中 weak 使用 自动置nil dealloc中为什么不能使用__weak

本文探讨了在iOS开发中,weak关键字在防止循环引用和避免野指针问题上的作用。对比了unsafe_unretained可能导致的崩溃,推荐使用weak。分析了在dealloc方法中使用__weak可能导致的问题,解释了为何在该方法内不应使用__weak修饰,以确保对象正确释放。
摘要由CSDN通过智能技术生成

在开发中weak关键字使用的比较多,一般开发人员都知道,使用weak可以防止循环引用。但是防止循环引用之前是使用unsafe_unretained关键字,使用unsafe_unretained关键字会导致野指针的问题,所以后来才使用weak关键字。

使用weak的好处是可以解决循环引用问题,并且不会有野指针的问题。不会导致程序崩溃,是因为用weak修饰的对象,系统会在对象销毁时把weak指针置nil,但是这样的话,因为系统维护了一个weak的hash表,所以性能上会有点问题,但是相对于程序的可靠性来说,这些性能可以忽略不计,还是推荐使用weak关键字。

最近自己实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值