In Swift 2, molti tipi che si dovrebbero fare in questo modo sono stati aggiornati per conformarsi al protocollo OptionSetType. Ciò consente la sintassi dell'array come per l'uso e, nel tuo caso, puoi usare quanto segue.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
E su una nota correlata, se si vuole verificare se un gruppo di opzioni contiene una specifica opzione, non è più necessario utilizzare AND bit a bit e un assegno pari a zero. Puoi semplicemente chiedere al set di opzioni se contiene un valore specifico nello stesso modo in cui verificherai se un array contiene un valore.
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
if settings.types.contains(.Alert) {
// stuff
}
In Swift 3, i campioni devono essere scritte come segue:
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
UIApplication.shared.registerUserNotificationSettings(settings)
e
let settings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
if settings.types.contains(.alert) {
// stuff
}
fonte
2015-06-10 17:30:17
circonda con "()" funziona per me UIApplication.sharedApplication() registerUserNotificationSettings (UIUserNotificationSettings (forTypes:. (UIUserNotificationType .Alert | UIUserNotificationType.Badge), categorie: nil)) –
Ora ho: 'Impossibile trovare un sovraccarico '|' che accetta gli argomenti forniti ' –
Non ho un'altra idea, mi dispiace. –