正在调用init,我不知道为什么?

时间:2010-08-10 16:50:25

标签: iphone objective-c cocoa-touch

我正在研究iTuneU Stanford iPhone课程HelloPoly绘图作业,我正在调用我的对象的init例程,当时我没想到。回调似乎表明该调用来自_loadMainNibFile(在其他调用之后)。我想要理解的是为什么我的对象是隐式初始化的。源文件可在此处找到: - http://www.cavedrawings.com/hp2_files.zip

有人能告诉我为什么在加载NIB文件时会隐式调用init例程吗?

2 个答案:

答案 0 :(得分:1)

initWithCoder:的大多数实现最终调用另一个初始化函数。如果有一系列逐步向初始化过程添加信息的堆栈初始化方法,这是正常的。

_loadMainNibFile调用nib文件所有者的initWithCoder:,后者又调用另一个初始化方法,该方法可以导致最终init

答案 1 :(得分:1)

当加载nib时,其中的所有对象都会被实例化以执行他们需要做的任何准备工作。

如果你想要加载nib的对象并在以后初始化,请将对象放在一个单独的nib中,并在需要时显式加载该nib。