【问题标题】:Type of expression is ambiguous without more context in Swift 3在 Swift 3 中没有更多上下文的表达式类型是模棱两可的
【发布时间】:2016-10-11 05:06:01
【问题描述】:

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

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

给我错误

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

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

我做错了什么?
我使用的是 Xcode 8。

【问题讨论】:

标签: ios swift3 usernotifications


【解决方案1】:

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

你需要:

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

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

【讨论】:

  • 非常感谢,麦迪。我知道 ios 10 及更高版本应该使用 UNNotificationSettings 类,但我才刚刚开始,只能找到 ios 9 的手持教程。所以我将从那里开始。
【解决方案2】:

UIUserNotificationSettings 在 iOS 10 中已被 UNNotificationSettings 弃用,如果您想实现 UNNotificationSettings,请按如下方式实现。

首先你需要为此导入UserNotifications

let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .badge , .sound]) {
     (granted, error) in

}

有关此问题的更多详细信息,请查看 tutorialUserNotifications.framework 上 Michał Kałużny 的 UserNotifications.framework

【讨论】:

    猜你喜欢
    • 2018-02-15
    • 2017-04-15
    • 2016-12-10
    • 2022-01-04
    • 2015-12-16
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多