首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOs:为什么IBOutlets在[[alloc] init]之后没有接线,但是在viewDidUnload:之后被调用了

iOs中的IBOutlets是用于连接Interface Builder中的视图元素和代码中的属性或方法的。在[alloc init]之后,IBOutlets还没有被连接,因此在这个阶段调用它们是没有意义的。而在viewDidUnload:方法中,是在内存警告发生时,视图被卸载时调用的。在这个阶段,IBOutlets已经被连接并且可以正常使用。

IBOutlets的连接是在视图加载完成后进行的,通常是在视图控制器的loadView或者awakeFromNib方法中进行的。这样可以确保视图已经被完全加载并且可以正常访问。

在viewDidUnload:方法中,由于内存警告或者其他原因,视图可能会被卸载以释放内存。在这个阶段,IBOutlets可能会被释放,因此在使用之前需要进行判空操作,以避免访问已释放的对象而导致崩溃。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

OC优化指南

a) Reusing UITableViewCell:利用cellWithTableView:cellIdentifier:nibName: b) Reusing Images/ Cache Data:imageNamed做了个很重要的事情:此方法cache了图片。但是这种方法只能从bundle里取出图片,即,不可以通过此方法从网络下载或者本地加载。其他方法,诸如[UIImage alloc] initWithContentOfFile:]或者 [UIImage alloc] initWithData] 则不会自动cache数据 c) 减少准备时间,在展示前将数据准备就绪 d) 善用DrawRect方法,速度比通过nib读取或者addSubView方法快很多,原因在于drawRect是GPU方法,而GPU方法在渲染或者显示UI时更快。 e) 切记设置自定义View的backgroundColor为white,默认为black f) 如果app有太多的子类或者一个复杂的结构,考虑通过代码来draw,让GPU来加速过程 g) Cache the hight。因为如果计算hight的过程很慢,则会影响tableView的渲染 h) Opaque。如果一个View是透明的,则iOS需要在一个像素上渲染两次或多次,因为一个像素在那时候属于多个view。请设置opaque为YES i) 尽量降低Graphical Effects

01

iOS - 老生常谈内存管理(三):ARC 面世

ARC全称Automatic Reference Counting,自动引用计数内存管理,是苹果在 iOS 5、OS X Lion 引入的新的内存管理技术。ARC是一种编译器功能,它通过LLVM编译器和Runtime协作来进行自动管理内存。LLVM编译器会在编译时在合适的地方为 OC 对象插入retain、release和autorelease代码来自动管理对象的内存,省去了在MRC手动引用计数下手动插入这些代码的工作,减轻了开发者的工作量,让开发者可以专注于应用程序的代码、对象图以及对象间的关系上。   本文通过讲解MRC到ARC的转变、ARC规则以及使用注意,来帮助大家掌握iOS的内存管理。   下图是苹果官方文档给出的从MRC到ARC的转变。

01
领券