使用unregisterForRemoteNotifications后,registerusernotificationsettings不起作用

我想在我的应用程序中使用推送通知的disabler和enabler。 我使用这样的代码。 另外我激活- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions通知- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions with sender.isOn from sender.isOn

 if (sender.isOn) { self.notificationLabel.text = @"Notifications enabled"; UIUserNotificationType allNotificationTypes = (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge); UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; [[UIApplication sharedApplication] registerForRemoteNotifications]; } else { self.notificationLabel.text = @"Notifications disabled"; [[UIApplication sharedApplication] unregisterForRemoteNotifications]; } 

但是在第一次使用unregisterForRemoteNotifications我的应用程序没有使用unregisterForRemoteNotifications初始化通知。 我不明白我做错了什么。

解决scheme:卸载应用程序并删除该代码!

我花了好几个小时和3个破碎的testing设备跟踪这一个下来..!

这条线很糟糕

 [[UIApplication sharedApplication] unregisterForRemoteNotifications] //DON'T DO IT! 

它使应用程序处于不稳定的状态,调用registerForRemoteNotifications不再有效。

这条线同样令人讨厌

 [[UIApplication sharedApplication] registerForRemoteNotifications] //CALL ME ONCE! 

每次运行您的应用程序只能调用一次。 如果你碰巧叫了两次,通知将会神秘地破坏。