我正在研究iTuneU Stanford iPhone课程HelloPoly绘图作业,我正在调用我的对象的init例程,当时我没想到。回调似乎表明该调用来自_loadMainNibFile(在其他调用之后)。我想要理解的是为什么我的对象是隐式初始化的。源文件可在此处找到: - http://www.cavedrawings.com/hp2_files.zip
有人能告诉我为什么在加载NIB文件时会隐式调用init例程吗?
答案 0 :(得分:1)
initWithCoder:
的大多数实现最终调用另一个初始化函数。如果有一系列逐步向初始化过程添加信息的堆栈初始化方法,这是正常的。
_loadMainNibFile
调用nib文件所有者的initWithCoder:
,后者又调用另一个初始化方法,该方法可以导致最终init
。
答案 1 :(得分:1)
当加载nib时,其中的所有对象都会被实例化以执行他们需要做的任何准备工作。
如果你想要加载nib的对象并在以后初始化,请将对象放在一个单独的nib中,并在需要时显式加载该nib。