一、weak 修饰控件
- 如下图可得:weak修饰的控件,在从父控件中移除之后,如果没有强引用的话此外,就会执行dealloc销毁,而且我们也知道weak修饰的会自动清空为null,所以不会存在野指针的问题
- 所谓野指针:就是访问了一块坏内存,就是指针p指向了一块已经释放的stu对象的内存,[p setAge:10]; 因为对象内存已经释放了,向一块不能访问不属于你的内存 -> 发送setAge消息,就是不合法的,就会引发野指针错误。
-
而weak,修饰的变量,在内存释放后会自动置为nil,p变为了空指针,[nil setAge:10]; 这样并不会引发任何错误,因为消息根本就发布出去的,不会有任何作用,所以当然也不会引发任何错误
Snip20150906_36.png
网友评论