J'ai donc lu des dictionnaires dans le livre officiel de Swift, mais je rencontre des problèmes en ce moment. Oui, il explique certaines choses simples que vous pouvez faire pour les dictionnaires tels que; check if the whole dictionary is empty
ou change 1 value of 1 key
, ou remove 1 value of 1 key
. Pour démontrer les problèmes que je INTRODUISE, j'ai un petit bout de code:Quelle est la manière la plus propre de faire des modifications complexes aux dictionnaires dans Swift 4?
//: Dictionary Test
import UIKit
let mainDatabase = ["Albert Einstein": ["Alberts first quote",
"Alberts second quote",
"Alberts third quote"],
"Martin Luther King": ["Martins first quote",
"Martins second quote",
"Martins third quote"],
"Newton": ["Newton first quote",
"Newton second quote",
"Newton third quote"]]
var database = mainDatabase // for later use
func randomQuote(){
//Make an array from all authors
var authorArray = Array(database.keys)
//Pick an author from that array
let author = (authorArray[Int(arc4random_uniform(UInt32(authorArray.count)))])
//Make an array from the quotes belonging to the author we've picked
var quoteArray = database[author]!
let randomNumber = Int(arc4random_uniform(UInt32(quoteArray.count)))
//Pick a quote from that array
let quote = quoteArray[randomNumber]
print(quote)
print(author)
//Delete the chosen quote from the array
quoteArray.remove(at: randomNumber)
//Update the new array to the database
database.updateValue(quoteArray, forKey: author)
print(quoteArray)
}
for index in 1...6{
randomQuote()
}
Alors tout d'abord avoir à prendre des choses du dictionnaire que la stocker dans un tableau et que le ramener au dictionnaire se sent vraiment maladroit. J'ai l'impression qu'il y a un moyen plus simple de le faire.
Ce code va générer un devis qui n'a pas été généré avant chaque fois que vous appelez la fonction randomQuote()
, cependant, je pense que parce que le dictionnaire est non ordonné il donnera parfois une erreur fatale: dire Index hors de portée.
Je n'arrive pas à comprendre les dictionnaires et à travailler avec eux. Même après avoir lu un article de bazillion ... Quelqu'un at-il quelques conseils?
* "il donnera parfois une erreur fatale: dire Index hors de portée" * - penser à ce qui se passe si le tableau de citation pour un auteur devient * vide. * –