Weak和Strong的区别
- Weak指针可以指向某块内存,但是并不使内存的ARC引用计数+1
- Strong指向某块内存,使得内存的引用计数+1
干货结论
- 在头文件中的View使用Strong指针,并且重写Get方法,在访问时初始化
- 在.m的@interface中使用Weak指针并且在初始化时用addSubView强指向它
1 | UIView *subView = [[UIView alloc]init];//实例化一块内存A,然后局部变量指向它 |
为什么这么麻烦(╯°□°)╯︵ ┻━┻
如果在.m的interface中使用强指针的话,那么在**[self.view addSubview]**也会存在一个强指针,那么就会有两个Retain。为了保证该内存伴随VC存在,只要VC的addSubview这个强指针一旦被释放就应该被释放,应该似的其Retain始终唯一。
理由: 一条狗应该只用一个绳子牵,绳子一松,狗就跑了,而不是一条狗用两条绳子拴着
!!!这是什么理由啊 (╯°Д°)╯︵ /(.□ . )
结论: 就是一个内存管理的强迫症,可以遵循也可以不遵循
强迫症需要注意的地方
1 | _subView = [[UIView alloc]init];//实例化一块内存A,直接用全局变量指向它 |