- (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types NS_DEPRECATED_IOS(3_0, 8_0, "Please use registerForRemoteNotifications and registerUserNotificationSettings: instead")php
昨天晚上整理PUSH的东西,准备些一个教程,所有弄好以后,发现没有达到预期的效果,本觉得是服务器代码的问题(由于本人对PHP代码一点都不懂),因此在网上四处搜索,后来看xcode log才发现,原来是IOS8系统更新了的问题,提示 registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later. 使用IOS8 xcode6的同窗,在使用推送(push)的时候应该已经出现这个问题了。那么让咱们来看看具体的解决方法。 iOS 8 has changed notification registration in a non-backwards compatible way. While you need to support iOS 7 and 8 (and while apps built with the 8 SDK aren't accepted), you can check for the selectors you need and conditionally call them correctly for the running version. Here's a category on UIApplication that will hide this logic behind a clean interface for you that will work in both Xcode 5 and Xcode 6. // IOS8 新系统须要使用新的代码咯 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; [[UIApplication sharedApplication] registerForRemoteNotifications]; } else { //这里仍是原来的代码 [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)]; } 本来在IOS7当中 判断PUSH是否打开的方法是: UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; return (types & UIRemoteNotificationTypeAlert); 若是将这段代码使用在 IOS当中,虽然不会出现crash的现象,可是基本没什么做用。 在IOS8中,咱们使用以下的新代码来取代以上的代码 { UIRemoteNotificationType types; if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { types = [[UIApplication sharedApplication] currentUserNotificationSettings].types; } else { types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; } return (types & UIRemoteNotificationTypeAlert); } 每当苹果更新一个新的版本的时候,最痛苦的莫过于咱们这群屌丝啊 加油码农! 本文转自 http://www.999dh.net/home.php?mod=space&uid=1&do=blog&quickforward=1&id=419 转载请注明!!