我正在尝试学习 Swift,并且正在阅读有关推送通知的教程。
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge , .Sound], categories: nil)
给我错误
“没有更多上下文的表达类型是模棱两可的”。
我直接从教程中复制/粘贴了这一行,并在 StackOverFlow 上找到了这一行。
我究竟做错了什么?
我正在使用 Xcode 8。
我正在尝试学习 Swift,并且正在阅读有关推送通知的教程。
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge , .Sound], categories: nil)
给我错误
“没有更多上下文的表达类型是模棱两可的”。
我直接从教程中复制/粘贴了这一行,并在 StackOverFlow 上找到了这一行。
我究竟做错了什么?
我正在使用 Xcode 8。
查看UIUserNotificationSettings. 它的签名在 Swift 3 中发生了变化,类型的值也发生了变化。
你需要:
let settings = UIUserNotificationSettings(types: [.alert, .badge , .sound], categories: nil)
当然,如果您只支持 iOS 10 及更高版本,那么您根本不应该使用UIUserNotificationSettings它,因为它现在已被弃用。改为使用UNNotificationSettings。但是,如果您仍然支持 iOS 9 或更早版本,那么UIUserNotificationSettings只要您更改为更新的语法,使用就可以了。
UIUserNotificationSettings在 iOS 10中已弃用UNNotificationSettings,如果您想实现,请按UNNotificationSettings如下方式实现。
首先,您需要为此导入UserNotifications。
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .badge , .sound]) {
(granted, error) in
}
有关此检查的更多详细信息,请查看Michał Kałużny 的本教程UserNotifications.framework