2

我不知道我是否可以在此处包含与我的项目相关的代码,因为我的项目如此之大,但是是否有任何典型原因NSLog会重复一些警告并在仅发生一个调用/错误的情况下对其进行调用?

例如,我有一个子类,它在以下位置NSBox初始化另一个类的实例awakeFromNib

- (void) awakeFromNib {
    burbControllerInstance = [[BurbController alloc] init];
    if (burbControllerInstance) {
        NSLog(@"init ok");
    }
}

NSLog打印了两次“init ok”。我不明白为什么这个子类会在我的项目中的任何地方被“唤醒”两次。nil这是一个更大问题的一部分,除了从我创建实例的类之外,我无法让变量返回任何内容。我想知道双值是否与它有关。

4

1 回答 1

3

这篇文章可能会有所帮助,即一条评论:

同样重要的是:如果您对多个 nib 使用同一个控制器,则可以在控制器上多次调用 awakeFromNib - 例如,您将应用程序委托用作应用程序的 About Box 和首选项对话框的所有者。因此,如果您将 awakeFromNib 用于除初始化 nib 对象之外的任何操作,则需要进行额外的保护测试

更新:更有趣的也可能是这个,作者提到它awakeFromNib被调用了两次。不幸的是,对于这个特定的问题没有真正的答案,但也许有一些基本的想法。

更新 #2: stackoverflow.com 的另一个潜在解决方案:视图控制器调用 awakeFromNib 两次。

于 2011-04-30T20:37:47.650 回答