Swift 3 - Comment utiliser enum valeur brute comme NSNotification.Nom?
Je suis en utilisant Xcode 8 beta 5 et je suis en train de configurer un enum de notifications de cette
enum Notes: String {
case note1
case note2
}
Puis d'essayer de les utiliser comme noms de notifications
NotificationCenter.default.post(name: Notes.note1.rawValue as NSNotification.Name,
object: nil, userInfo: userInfo)
Mais j'obtiens une erreur.
Cannot convert value of type 'String' to specified type 'NSNotification.Name'
Est-il un travail autour de, ou ai-je raté quelque chose? Il fonctionne dans Xcode 7.3.1
Toute aide serait appréciée.
OriginalL'auteur D. Greg | 2016-08-11
Vous devez vous connecter pour publier un commentaire.
Ici, vous allez, Utiliser Swift 3 & Xcode 8.0
Une autre façon
Je pense qu'il n'y a pas de raison de mettre "enum MyNames' à l'intérieur de Notification d'extension.Name". Il n'a juste aucun sens.
OriginalL'auteur
Je fais de cette façon, Pour moi, c'est plus simple façon de gérer les noms de notifications.
Swift 3.0 et Xcode 8.0
À l'aide de l'extension de Notification.Nom, nous pouvons définir statique noms de l'intérieur que de la manière suivante.
Nous pouvons utiliser que des noms comme ceci:
Espère que ce simple moyen utile pour vous.
OriginalL'auteur Gaurav Rami
Autant que je sache, il n'y a pas de type
NSNotification.Name
dans Swift 2.2.1/Sdk livré dans Xcode 7.3.1, donc je suis curieux de savoir comment vous avez fait travailler.De toute façon vous avez besoin d'écrire quelque chose de ce genre si vous voulez utiliser votre enum:
Par la voie, ma meilleure recommandation pour définir votre propre
Notification.Name
est l'aide de l'extension qui définit les propriétés statiques:(C'est un peu plus long que enum..., mais) vous pouvez l'utiliser comme ceci:
NSNotification.Name
dans Swift 2.2. Je voulais dire que je pouvais attribuer le nom de notification à la valeur brute. Je devrais avoir été plus clair.merci pour la clarification. Comme vous le savez Swift bêtas sont donc en évolution rapide, j'ai eu peur j'ai peut-être raté quelque chose.
OriginalL'auteur OOPer