UI界面基础

  1. 方法增加连线返回值关键字 IBAction
  2. UI控件增加连线关键字 IBOutlet
  3. 为什么xib拖拽的UI控件用weak
"循环引用是指 A持有B 然后 B又持有A , 你中有我,我中有你"
 例如:self.view持有一个button, 
 [self.view addsubView:button]; 
 self.view 持有了 button , button 并不持有self.view,并不构成循环引用.
 那为什么用weak:
 因为view持有subviews数组,subviews数组对其中的对象为强引用,而xib拖拽控件会默认加入到subviews数组中,此时如果拖拽的ui控件使用strong,会造成多次强引用.
20180212162157634.jpg
  1. **纯代码创建UI控件到底应该用strong还是用weak **
 推荐使用weak , 因为UI控件肯定最终会加载到self.view上形成一个强引用,如果使用strong,控制器会持有一次,self.view又持有一次.多次强引用了.虽然不会产生太大的问题,但是不符合OC的引用计数规范.

注意通过代码创建会有这样的问题,weak创建后因为没有强引用,创建即释放了.

1.png

所以需要,避免创建即销毁.


4.png

注意点击按钮输出的self.weakbutton的内存地址


2.png

点击后输出self.weakbutton为null,就是因为没有强引用而导致地址为null.
添加之后,正常. 完美而且只有一个强引用.


3.png

参考:https://blog.csdn.net/wangjunling888/article/details/51355504
https://www.jianshu.com/p/adbf1ed14ffc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容