3

我正在尝试学习 Swift,并且正在阅读有关推送通知的教程。

let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge , .Sound], categories: nil)

给我错误

“没有更多上下文的表达类型是模棱两可的”。

我直接从教程中复制/粘贴了这一行,并在 StackOverFlow 上找到了这一行。

我究竟做错了什么?
我正在使用 Xcode 8。

4

2 回答 2

11

查看UIUserNotificationSettings. 它的签名在 Swift 3 中发生了变化,类型的值也发生了变化。

你需要:

let settings = UIUserNotificationSettings(types: [.alert, .badge , .sound], categories: nil)

当然,如果您只支持 iOS 10 及更高版本,那么您根本不应该使用UIUserNotificationSettings它,因为它现在已被弃用。改为使用UNNotificationSettings。但是,如果您仍然支持 iOS 9 或更早版本,那么UIUserNotificationSettings只要您更改为更新的语法,使用就可以了。

于 2016-10-11T05:14:56.697 回答
1

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

于 2016-10-11T05:19:52.837 回答