J'essaie de passer un La condition préalable a échoué: p>
Nsarray Elément Échec de la correspondance du type d'élément de tableau SWIFT P>
NsmutableArraRay prévu mais trouvé __nsdictionaryi p>
blockQuote> J'ai essayé plusieurs solutions telles que convertir le ou ceci: P> nsmutableArray code> à partir d'un mode de vue Objective-C à une visiteuse SwiftController, le problème est que la vue Swift ViewController ne peut pas comprendre le type
nsmutableArray code> type et il me donne cette erreur lorsque j'essaie d'accéder à la matrice dans Swift, je reçois cette erreur:
nsmutableArraRay code> vers un tableau de chaînes SWIFT avec ce code suivant: p>
let swiftArray: [String] = mutableArray.flatMap { $0 as? String }
3 Réponses :
Essayez avec ceci.
if let swiftArray = objCMutableArray.mutableCopy() as? Array<Dictionary<String, AnyObject>> { }
J'ai édité ma réponse. S'il vous plaît vérifier peut être cela aide.
La solution que j'ai trouvée est lorsque je passe la matrice, je le convertit en Nsdata afin que Swift puisse la lire à l'aide du code suivant:
@objc func setSelectedBillsData(selectedBillsData: NSData) { self.mData = selectedBillsData do { if let loadedStrings = try NSKeyedUnarchiver.unarchiveObject(with: selectedBillsData as Data) as? [[String:AnyObject]] { print(loadedStrings) } } catch { print("erreur.") } }
Pourquoi? Ce n'est pas une solution viable.
c'est la solution que j'ai trouvée, si vous avez l'alternative, puis continuez
Selon votre code précédent: var swiftarray = objcmutablarray comme nsarray comme! [String] code> =>
var swiftarray = objcmutableArray comme! [[Chaîne: anyobject]] code>?
Il devrait fonctionner
if let swiftArray = objCMutableArray as? [[String:AnyObject]]{ print(swiftArray) }
Vous avez un dictionnaire à l'intérieur non pas une chaîne, comment voulez-vous passer cela en tant que chaîne?
Je veux juste que le contrôleur de vue rapide lise le tableau
comme nsarray comme! [String] code> - pourquoi?
vous devez savoir ce que vous avez dans ce tableau ou même s'il s'agit d'un tableau avant que Swift ne puisse le lire comme ça
Vous avez un tableau de dictionnaire ([NSDictionary]) non [string].
Oui et j'ai besoin de le lire à Swift
C'est en fait un nsmutableArray que propose des rangées de Nsdictionnaires