Reputation: 2712
I am trying to learn Swift and am going through a tutorial on push notifications.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge , .Sound], categories: nil)
Is giving me the error
"Type of expression is ambiguous without more context".
I copy/pasted this line directly from a tutorial and have found this same line used on StackOverFlow.
What am I doing wrong?
I am using Xcode 8.
Upvotes: 3
Views: 6521
Reputation: 72410
UIUserNotificationSettings
is deprecated with UNNotificationSettings
in iOS 10, if you want to implement UNNotificationSettings
then implement like below.
First you need to import UserNotifications
for that.
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .badge , .sound]) {
(granted, error) in
}
For more details on this check this tutorial by Michał Kałużny on UserNotifications.framework
Upvotes: 1
Reputation: 318794
Look at the documentation for UIUserNotificationSettings
. Its signature has changed in Swift 3 as has the values for the types.
You need:
let settings = UIUserNotificationSettings(types: [.alert, .badge , .sound], categories: nil)
Of course if you are only supporting iOS 10 and later, then you shouldn't use UIUserNotificationSettings
at all since it is now deprecated. Use UNNotificationSettings
instead. But if you are still supporting iOS 9 or earlier, then using UIUserNotificationSettings
is fine as long as you change to the updated syntax.
Upvotes: 11