PDF 课件和源代码下载地址:
作者回复: 是的,完整的生命周期其实还包括很多。在课程里知识简单的介绍让大家有个初步的了解。当然在课程中“完整”描述的不是特别准确
作者回复: 1. 防止父类初始化失败,导致整个逻辑的错误,所以要判断是否已经正确的alloc分配内存以及是否初始化成功。对于alloc方法来说系统是有可能失败的,同时init函数如果在需要传参数的时候,传入错误的参数也可能返回nil。
2. 生命周期相关的方法,其实我们都是在 override,如果我们不调用super,那么在super中相关方法内的实现就无法执行,只会执行我们override的方法。根据文档“If you override this method, you must call super at some point in your implementation.” 说明UIViewController自身在这些函数中肯定是有逻辑的,所以override的时候需要调用super。
作者回复: 这个是属于的,其实生命周期还有很多方法的调用,没有一一的详细介绍,loadView最常见的是和viewDidLoad混淆,可以通过这两个关键字搜索下 相关的讲解有很多。
简单的来说 loadView 就是创建vc中那个默认view的,在这个方法中可以创建自定义的view,比如我可以让vc的默认view是webview或者scrollview,就可以在这个方法中进行创建。viewDidLoad是view创建完毕之后调用,在这里我们通常加上子view等。
作者回复: 是的 在课程中为了方便讲解 没有使用storyboard 在window那节课中也会讲解如何取消storyboard哈
作者回复: 我这边用上传的Demo是可以的,确定下断点添加的时机,加好之后在重新运行下。
作者回复: viewController的初始化是在最开始的函数中调用的,有可能你断点加的晚了,可以先加断点之后在重新执行下试试。
如果还是不行,可以对比Demo看下具体哪里的写法不同