strong和weak
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了strong和weak相关的知识,希望对你有一定的参考价值。
参考技术A OC 采用的是引用计数式(ARC)的内存管理方式:1.自己生成的对象自己持有。
2.非自己生成的对象自己也能持有。
3.自己持有的对象不再需要时释放。
4.非自己持有的对象自己无法释放。
所以只要还有一个变量指向对象,对象就会保持在内存中。当指针指向新值,或者指针不再存在时,相关联的对象就会自动释放。
strong表示强引用,这个关键字表示只要有对这个对象的强引用,这个对象就不会销毁,换句话说,只有所有对这个对象的强引用都去除时,这个对象才会被释放,无论这时还有多少弱引用引用它。
weak表示弱引用,weak仍然可以指向一个对象,但不属于对象的拥有者。weak不会增加对对象的引用计数,当一个对象所有的强引用都去除时,即使有弱引用,这个对象也会被释放,也就自动置为 nil。
weak使用场景
1.在 delegate,block,NSTimer 等中使用,以避免循环引用所带来的内存泄漏。
2.我们使用xib时,拖出来的控件都使用weak这一属性。因为xib上的控件,我们的UIView已经对控件有了强引用,控件回跟着ViewController一起销毁,所以这个时候不必要必须强引用。
以上是关于strong和weak的主要内容,如果未能解决你的问题,请参考以下文章