if let action = self.info?["action"] {
switch action as! String {
....
}
} else {...}
Dans cet exemple, "action" existe toujours en tant que clé dans self.info.Swift: Unemballage des options et NSNull
Une fois que la deuxième ligne exécute, je reçois:
Could not cast value of type 'NSNull' (0x1b7f59128) to 'NSString' (0x1b7f8ae8).
Toute idée de comment l'action peut être même si je NSNull déballa? J'ai même essayé "if action! = Nil", mais il se faufile encore et cause un SIGABRT.
Il pourrait être possible que ce que vous essayez de déballer n'est pas un String – Slayter
self.info est un dictionnaire de type [String: AnyObject], mais la valeur est toujours une chaîne. Ne devrait pas forcer le travail abattu indépendamment? – nuvaryan
Pourquoi ne lancez-vous pas une action conditionnelle à une chaîne lorsque vous la déclarez? Comme ceci: 'si let action = self.info?["action"] as? String {... ' –