У меня есть кусок кода в моей App делегат, который уведомляет мой первый View Controller, который пользователь хочет, чтобы показать что-то сразу:Избегайте дублирования выполнения кода в App Делегат
- (void)notifyAppWithURL:(NSURL *)url {
if(!url){
return;
}
NSDictionary *dict = [self parseQueryString:[url query]];
NSString *host = [url host];
[self notifyApp:host value:dict[@"id"]];
}
- (void)notifyApp:(NSString *)key value:(NSString *)value {
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[[NSNotificationCenter defaultCenter] postNotificationName:@"ShowOnLoad" object:nil userInfo:@{
key : value
}];
}
Что я вызвать из didReceiveRemoteNotification
& openURL
методы делегата. Все отлично работает с этими двумя.
Тем не менее, кажется, что если приложение является закрытым, и этот метод называется:
didFinishLaunchingWithOptions
и я помещаю один и тот же вызов:
if(launchOptions[UIApplicationLaunchOptionsURLKey]){
[self notifyAppWithURL:launchOptions[UIApplicationLaunchOptionsURLKey]];
}
внутри, а затем два NSNotification
«s отправляются в Контроллер просмотра.
Два вопроса:
Как я могу решить эту проблему с повторяющимися вызовами notifyAppWithURL
в моем App делегатом?
Кроме того, есть ли лучшее, более широкое решение для обработки нескольких поступающих действий от пользователя (а затем запуск некоторых других действий)?