MST

星途 面试题库

面试题:Objective-C中视图控制器生命周期方法的调用顺序是怎样的,请列举并简述每个方法的作用

在Objective-C开发中,视图控制器有一系列与生命周期相关的方法。请详细说明这些方法的调用顺序,并简要阐述每个方法在视图控制器生命周期中负责处理的主要任务,例如viewDidLoad、viewWillAppear等方法。
28.0万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
  1. initinitWithCoder:
    • 调用顺序:最先调用,用于初始化视图控制器实例。
    • 主要任务:分配内存并初始化视图控制器的属性。如果是从nib文件加载,会调用initWithCoder:;如果手动创建,调用init
  2. loadView
    • 调用顺序:在init之后,viewDidLoad之前调用。
    • 主要任务:创建视图控制器的视图层次结构。可以通过代码创建视图,也可以从nib文件加载视图。如果视图控制器是从storyboard加载,系统会自动处理此步骤。
  3. viewDidLoad
    • 调用顺序:在loadView之后调用。
    • 主要任务:进行视图的初始配置,例如添加子视图、设置视图属性、初始化数据模型等一次性的设置工作。
  4. viewWillAppear:
    • 调用顺序:在视图即将显示到屏幕之前调用,每次视图将要显示时都会调用。
    • 主要任务:准备视图显示,例如注册通知、调整视图布局以适应方向变化等。此方法中不适合进行大量的计算工作,因为它会在每次视图出现时调用。
  5. viewDidAppear:
    • 调用顺序:在视图已经显示到屏幕之后调用,每次视图显示后都会调用。
    • 主要任务:执行需要在视图显示后立即执行的操作,如开始动画、启动定时器等。
  6. viewWillDisappear:
    • 调用顺序:在视图即将从屏幕上移除之前调用,每次视图将要消失时都会调用。
    • 主要任务:清理与视图相关的资源,例如取消网络请求、移除通知观察者、停止定时器等。
  7. viewDidDisappear:
    • 调用顺序:在视图已经从屏幕上移除之后调用,每次视图消失后都会调用。
    • 主要任务:可以在这里进行一些最后的清理工作,但此时视图已经从窗口移除,不适合进行与视图相关的操作。
  8. dealloc
    • 调用顺序:当视图控制器被释放时调用。
    • 主要任务:释放视图控制器持有的所有资源,例如释放内存、关闭文件句柄等。确保在对象销毁前清理所有引用,避免内存泄漏。