我有一个Cocoa应用程序可以正常工作,除非它不会在我的app委托上调用applicationDidFinishLauching。 applicationWillFinishLauching确实有效。
在IB中,我已将代理从“Application”(以及File的所有者)设置为“XXX App Delegate”对象。所有其他特定于应用程序的方法都被正确调用。
我可能做错了什么;我不知道在哪里搜索
我的代码:
@interface NZBVortexAppDelegate : NSObject
{
NSWindow *window;
NZBqueue *connectionPool;
MainWindowViewController *mainWindowViewController;
}
@property (assign) IBOutlet NSWindow *window;
@end
.m文件
@implementation NZBVortexAppDelegate
@synthesize window;
-(void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSLog(@"Not invoked");
}
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification {
NSLog(@"Invoked");
}
@end
你可以给我一些指示吗?我甚至从WillFinishLauching步入(一步一步),但似乎不再打我的任何代码,无法在框架内调试更多。
答案 0 :(得分:2)
如果您正在构建Mac OS X应用程序,那么这确实很奇怪。另一方面,如果你正在开发一款iOS应用程序,那么预计这是因为一些未知的原因Apple会稍微改变一下这个方法。在OS X中,上面的方法对于iOS NSNotification *
applicationDidFinishLaunching:
UIApplication *
应该是applicationWillFinishLaunching:
的完全正确。我不知道为什么他们这样做,因为NSNotification
仍然是{{1}}。
答案 1 :(得分:0)
我得到了答案,似乎我的偏好plist有点腐败导致Sparkle SUUpdater对象永远不会在启动期间完成检查更新,反过来阻止被调用的事件。花了几个小时才弄明白因为闪耀至少没有记录这个问题。
我已经联系了Sparkle开发人员,以增加更多的健全性检查。 谢谢你们!