推送通知错误 IOS 8

Push notification error IOS 8

我通过推送通知将我的应用程序与 Parse 服务器连接,但问题是我遇到了错误,它说:registerforRemotenotification 类型在 IOS 8.0 版中已弃用:请使用 register 进行远程通知并注册用户通知设置反而。但此代码适用于 IOS8.

谁能帮我写出正确的代码?

    if application.applicationState != UIApplicationState.Background {


        let preBackgroundPush = !application.respondsToSelector("backgroundRefreshStatus")
        let oldPushHandlerOnly = !self.respondsToSelector("application:didReceiveRemoteNotification:fetchCompletionHandler:")
        var pushPayload = false
        if let options = launchOptions {
            pushPayload = options[UIApplicationLaunchOptionsRemoteNotificationKey] != nil
        }
        if (preBackgroundPush || oldPushHandlerOnly || pushPayload) {
            PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)
        }
    }
    if application.respondsToSelector("registerUserNotificationSettings:") {
        let userNotificationTypes = UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound
        let settings = UIUserNotificationSettings(forTypes: userNotificationTypes, categories: nil)
        application.registerUserNotificationSettings(settings)
        application.registerForRemoteNotifications()
    } else {
        let types = UIRemoteNotificationType.Badge | UIRemoteNotificationType.Alert | UIRemoteNotificationType.Sound
        application.registerForRemoteNotificationTypes(types)
    }


    return true
}
![enter image description here][1]

看你想要什么:

  • 如果您不希望您的应用与 iOS 7 或更早版本兼容,请将项目设置中的部署目标设置为 iOS 8;并且只保留条件的第一部分(删除 'else' 部分),因为应用程序将始终响应该选择器。对于 iOS 8 的部署目标,编译器告诉您,如果您到达该行,您将在 iOS 8 设备上执行已弃用的语句。
  • 如果您希望您的应用与 iOS 7 或更早版本兼容,请确保您在项目设置中的部署目标设置为 iOS 7 或更早版本;然后警告应该消失,如果没有,你可以尝试用这里描述的东西让它静音 deprecated warnings in xcode and how to handle deprecation