奥非域

ios8下推送的注册方式(同时兼容ios8以下版本)

今天刚升级到ios8系统,原项目编译发现异常信息:

registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later.

于是查了资料,原来是注册方式改变了,蛋疼的苹果!解决方法如下,同时对ios8以下版本进行处理:

if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
    {
        // iOS 8 推送注册
        [application registerUserNotificationSettings:
		[UIUserNotificationSettingssettingsForTypes:
			(UIUserNotificationTypeSound
			|UIUserNotificationTypeAlert
			|UIUserNotificationTypeBadge)
			 categories:nil]];
        [application registerForRemoteNotifications];
    }
    else
    {
        // iOS 8 以下版本推送注册
        [application registerForRemoteNotificationTypes:
         (UIRemoteNotificationTypeBadge
            |UIRemoteNotificationTypeAlert
            |UIRemoteNotificationTypeSound)];
    }


IOS