В настоящее время я работаю над обработкой push-уведомления, и я получаю сообщение об ошибке при получении первого уведомления и покажу мне контроллер представления назначения. Но для второго и остальных приложение аварийно. У меня проблема: приложение не получает параметр, который должен получить от push-уведомления.Обращение с Push Notification на iOS
AppDelegate.m
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
//[PFPush handlePush:userInfo];
NSLog(@"didReceiveRemoteNotification userInfo=%@", userInfo);
if(application.applicationState == UIApplicationStateActive)
{
NSDictionary *aps = userInfo[@"aps"];
NSString *alertTitle = @"";
if([userInfo[@"page"] isEqualToString:@"ga"])
{
alertTitle = @"General Advisory";
}
else if ([userInfo[@"page"] isEqualToString:@"cr"])
{
alertTitle = @"Customer Recommendation";
}
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:alertTitle
message:[aps objectForKey:@"alert"]
delegate:self
cancelButtonTitle:@"Close"
otherButtonTitles:nil];
[alert addButtonWithTitle:@"View"];
//set tag to id
alert.tag = [userInfo[@"id"] intValue];
[alert show];
}
else if(application.applicationState == UIApplicationStateInactive)
{
[self movePageAfterReceiveNotification:userInfo[@"page"] withId:userInfo[@"id"]];
}
}
- (void)movePageAfterReceiveNotification:(NSString *)page withId:(NSString *)pageId
{
UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;
UITabBarController *tabBarVC = (UITabBarController*)topController.presentedViewController;
if (tabBarVC.selectedIndex > 0)
{
[tabBarVC setSelectedIndex:0];
}
UINavigationController *navcon = (UINavigationController*)[tabBarVC.viewControllers firstObject];
HomeViewController *homeVC = (HomeViewController*)[navcon topViewController];
NSLog(@"Page: %@",page);
NSLog(@"ID: %@",pageId);
if ([page isEqualToString:@"ga"])
{
//redirect to homeVC
[homeVC loadDataGeneralAdvisoryFromPushNotif:pageId];
}
else if ([page isEqualToString:@"cr"])
{
//redirect to homeVC
[homeVC loadDataCustomerRecommendationFromPushNotif:pageId];
}
}
ошибка как это:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CRDetailViewController loadDataCustomerRecommendationFromPushNotif:]: unrecognized selector sent to instance 0x14756d180'
в этом VC loadDataCustomerRecommendationFromPushNotify: попробуйте, может быть заклинание ошибка – Spynet
Но первый параметр был успешно загружен. –
(HomeViewController *) [navcon topViewController] Вероятно возвращает контроллер представлений, который является экземпляром CRDetailViewController, добавляет ваш метод в CRDetailViewController или что-то еще с этим контроллером – user2432612