У меня есть приложение Какао, которое хорошо работает кроме него, не вызовет applicationDidFinishLauching на моего делегата приложения. applicationWillFinishLauching действительно работает все же.
В IB я установил делегата из "Приложения" (и также владелец Файла) моим "XXX Делегатам Приложения" объект. Все другие специализированные методы называют правильно достаточно удачливыми.
Что могло я сделать неправильно; я понятия не имею, где больше искать
Мой код:
@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 (вступите и), но, кажется, не поражают ни одного моего кода больше, не может отладить больше из платформ.
Я получил ответ, похоже, мой список предпочтений был немного поврежден, из-за чего объект Sparkle SUUpdater никогда не завершал проверку обновлений во время запуска и, в свою очередь, блокировал вызываемое событие. Мне потребовалось несколько часов, чтобы разобраться, потому что Sparkle, по крайней мере, не регистрирует эту проблему.
Я связался с разработчиком Sparkle, чтобы добавить дополнительную проверку работоспособности. Спасибо, парни!
Если вы создаете приложение для Mac OS X, то это действительно странно. С другой стороны, если вы работаете над приложением для iOS, то это вполне ожидаемо, поскольку по неизвестной причине Apple немного изменила метод. В OS X ваш метод, описанный выше, точно правильный, а для iOS, где у вас NSNotification *
в applicationDidFinishLaunching:
должно быть UIApplication *
. Я понятия не имею, почему они так сделали, поскольку applicationWillFinishLaunching:
все еще является NSNotification
.