2016-10-11 36 views
3

我努力学习斯威夫特并打算通过推送通知的教程更多的上下文暧昧。类型的表达是没有斯威夫特3

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

是给我的错误

“表达的类型是没有更多的背景下暧昧”。

我直接从教程复制/粘贴这一行,并发现这条线在StackOverFlow上使用。

我在做什么错?
我使用的Xcode 8

+0

依我看由米哈尔Kałużny检查这个tutorial此兽是那边? ;)http://balancedcode.com/blog/files/de01930f6f2cf9e4c886531eca028cba-0.html我已经受够了Xcode的线索来解决它弥补斯威夫特3. –

回答

11

看为UIUserNotificationSettings的文档。它的签名在Swift 3中已经改变,类型的值也一样。

您需要:

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

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

+0

非常感谢,马迪。我知道,ios的10和更高版本应该使用UNNotificationSettings类,但我刚起步,是唯一能够找到的ios 9.所以我打算从那里开始一个手拿着教程。 –

1

UIUserNotificationSettings在iOS 10中不推荐使用UNNotificationSettings,如果您想实施UNNotificationSettings,则执行如下所示。

首先,你需要导入UserNotifications了点。

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

} 

,详细了解这对UserNotifications.framework