Ne peut pas convertir une valeur de type '[Chaîne]?' à attendre argument de type 'String'

Ce que je veux faire est de définir l'image de firstCard être égale pour le fichier d'image avec le nom correspondant à firstCardString.

Par exemple, dans le cas ci-dessous, le code pourrait être la mise en self.firstCard.image pour afficher l'image nommée "card1" si elle choisit de façon aléatoire (j'ai tondu le reste de la matrice pour des raisons de concision, la chose entière contient 52 objets).

var deckArray = [
        "card1": ["Bear","Ball"],
        "card2": ["Bear","Ball"],
        "card3": ["Bear","Ball"],
        "card4": ["Bear","Ball"],
        "card5": ["Bear","Ball"],
        "card6": ["Bear","Ball"],
        "card7": ["Bear","Ball"],
]

    let firstRandomNumber = Int(arc4random_uniform(52))+1
    let firstCardString = deckArray["card\(firstRandomNumber)"]
    self.firstCard.image = UIImage(named: firstCardString)

Au lieu de cela, j'obtiens l'erreur suivante:

Ne peut pas convertir une valeur de type '[Chaîne]?' à attendre argument de type 'String'

Je ne suis pas entièrement sûr de ce que ce message d'erreur signifie, qu'est-ce que [String]??

OriginalL'auteur Andrew | 2015-10-26