L'accès au Dictionnaire des valeurs à l'intérieur de la Matrice de dans swift
J'ai un tableau avec les données de mon TableView sections
let menuItems : Dictionary<String,Dictionary<String,String>>[] = [
[
"data" : [
"name":"test",
"image":"test.png"
]
],
[
"data" : [
"name":"test2",
"image":"test2.png"
]
]
]
Je vais essayer d'y accéder en utilisant l'indice
func tableView(tableView: UITableView!, titleForHeaderInSection section: Int) -> String! {
return menuItems[section]["data"]["name"]
}
et ont l'erreur
Could not find member 'subscript'
J'ai lu beaucoup de questions similaires sur stackoverflow, mais je n'ai toujours pas compris comment résoudre le problème. J'ai essayé de le déballer avec "!" symbole et utilisé un autre variables - pas de résultat.
Pourriez vous m'expliquer comment ça fonctionne, s'il vous plaît?
ok, il semble que les menuItems[section]["data"]!["nom"] œuvres. Mais pourquoi devrions-nous déballer "données", pas un "article"?
double possible de Swift d'erreur lorsque vous essayez d'accéder Dictionnaire: `impossible de trouver un membre "indice"
double possible de Swift d'erreur lorsque vous essayez d'accéder Dictionnaire: `impossible de trouver un membre "indice"
OriginalL'auteur John Kakon | 2014-06-10
Vous devez vous connecter pour publier un commentaire.
Réponse courte: menuItems[0]["data"] renvoie une option de dictionnaire.
Vous pouvez regarder ci-dessous REPL sortie de comprendre le problème.
Dictionary<String, String>
!
.Dans le code réel, vous auriez probablement souhaitez vérifier les options, et la poignée de nils en conséquence.
1> laissez menu:
Dictionary<String, Dictionary<String, String>>[]
= [["dict1" : ["key" : "val"]], ["dict2" : ["key" : "val"]]]2> menu[0]
3> menu[0]["clé"]
4> menu[0]["dict1"]
5> menu[0]["dict1"]["clé"]
6> menu[0]["dict1"]!
7> menu[0]["dict1"]!["clé"]
8> menu[0]["dict1"]!["clé"]!
consultez la mise à jour de réponse. menuItems[0] n'est pas une option. Et si vous voulez une Chaîne de caractères en arrière au lieu d'une Chaîne de caractères?, vous devez utiliser ["nom"]! ainsi.
Je vous remercie pour votre réponse. Tableau de l'indice renvoie erreur fatale "Array index out of range", mais le dictionnaire de l'indice renvoie l'option valeur à néant. Maintenant c'est claire.
OriginalL'auteur Millie Smith