我不知道我是否可以在这里包含相关的代码,因为我的项目非常大但是有任何典型的原因NSLog
会重复一些警告并在只有一个的情况下调用它电话/错误正在发生?
作为一个例子,我有一个NSBox
的子类,它在awakeFromNib
上的另一个类的实例中:
- (void) awakeFromNib {
burbControllerInstance = [[BurbController alloc] init];
if (burbControllerInstance) {
NSLog(@"init ok");
}
}
我得到NSLog
两次打印“init ok”。我不明白为什么这个子类会在我的项目中的任何地方被“唤醒”两次。这是一个更大问题的一部分,我无法从我正在创建实例的类中获取除nil
之外的任何变量。我想知道是否可能是双重值与它有关。
答案 0 :(得分:3)
This post可能会有所帮助,我。即一条评论:
同样重要的是:awakeFromNib可以 在...上多次调用 控制器,如果你使用相同的 几个笔尖的控制器 - 比方说, 你正在使用app delegate作为 应用程序的关于Box和的所有者 偏好对话框。所以你需要一个 如果你使用额外的防护测试 awakeFromNib除了 初始化nib对象
更新:更有意思的还有this,其中作者提到awakeFromNib
被称为两次。不幸的是,对于这个特殊的问题没有真正的答案,但也许是一些基本的想法。
更新#2: stackoverflow.com的另一个潜在解决方案:View Controller calls awakeFromNib twice.