Objective c 重复的NSLog条目
我不知道我是否可以在这里包含相关的代码,因为我的项目太大了,但是有没有什么典型的原因使得Objective c 重复的NSLog条目,objective-c,cocoa,nslog,awakefromnib,Objective C,Cocoa,Nslog,Awakefromnib,我不知道我是否可以在这里包含相关的代码,因为我的项目太大了,但是有没有什么典型的原因使得NSLog会在只发生一次调用/错误的情况下重复一些警告和调用 例如,我有一个子类NSBox,它初始化awakeFromNib上另一个类的实例: - (void) awakeFromNib { burbControllerInstance = [[BurbController alloc] init]; if (burbControllerInstance) { NSLog(@"
NSLog
会在只发生一次调用/错误的情况下重复一些警告和调用
例如,我有一个子类NSBox
,它初始化awakeFromNib
上另一个类的实例:
- (void) awakeFromNib {
burbControllerInstance = [[BurbController alloc] init];
if (burbControllerInstance) {
NSLog(@"init ok");
}
}
我得到NSLog
两次打印“init ok”。我不明白为什么在我的项目中,这个子类会被“唤醒”两次。这是一个更大问题的一部分,在这个问题中,我无法让变量从我正在创建的类中返回除nil
之外的任何内容。我想知道这两个值是否与此有关。可能会有所帮助,I。E有一条评论:
同样重要的是:awakeFromNib可以
在网上打了多次电话
控制器,如果您使用相同的
多个NIB的控制器–例如,
您正在使用应用程序代理作为
应用程序的About Box和
“首选项”对话框。所以你需要一个
如果您使用
从笔尖上醒来,除了
初始化nib对象
更新:更有趣的可能是,作者提到awakeFromNib
被调用两次。不幸的是,这个问题没有真正的答案,但可能有一些基本的想法
更新#2:stackoverflow.com上的另一个潜在解决方案:您是否从该类派生?定义派生。比如,检索变量?不,我正在调用BurbController类中的一个方法,该方法更改一组仅与该类相关的变量。当该方法在自己的类中运行时,它们保存正确的数据,但当我从NSBox子类调用该方法时,它们保存“nil”。不,我不相信。在我的界面中,我只为一个对象对
NSbox
进行了子类化,并且在这一个对象中,我只否决了与NSbox
的打印和分页相关的方法。我不知道还有什么地方会在应用程序启动时被唤醒两次。啊哈,最后一个链接帮了大忙。它给了我这样一个想法,我不需要像往常一样通过nib调色板初始化我的子类。因此,所发生的事情是,nib是由我的接口中的对象以及nib调色板中的对象启动的。这是我养成的坏习惯。谢谢你!现在我们来弄清楚为什么我的变量仍然不返回值…@bizztask:好的,这也是我在询问从该类派生时的意图。通常在这种情况下,初始化了多个对象。明白了。谢谢,我还没到这一步,所以有时候只有在把事情说得更具体一点的时候才能理解。没问题,尤其是大型项目有时会有点困难。