推送通知错误 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
我通过推送通知将我的应用程序与 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