Object-C 中的强指针与弱指针
2017-11-16 本文已影响0人
超人_22
1>强指针:默认情况下,所有的指针都是强指针.我们也可以用__strong修饰。
2>弱指针:用__weak修饰的指针,就是弱指针。
共同点:无论是强指针还是弱指针,都是指针,都可以用来存储地址.都可以通过这个指针访问对象的成员区别:在ARC模式下,他们用来作为回收对象的基准,如果一个对象没有任何类型的强指针指向的时候,对象就会被自动释放。
3>强指针与弱指针的声明默认情况下,所有的指针都是强类型的.也可以用__strong来标识这个指针是强指针,使用__weak标识指针的类型是弱指针类型的指针。
4>ARC模式下对象的回收机制没有强指针指向一个对象的时候.就会被自动回收
5>ARC机制下,属性的类型是OC对象类型的时候,一般用strong,非OC对象的类型使用assign
6>ARC机制下的循环引用问题
6.1当两个类相互引用作为对方的属性的时候.在ARC机制下两边都用strong就会出现循环引用,导致内存泄漏
6.2.解决办法:一端用strong,一端用weak