Swift: un tableau associatif avec de multiples clés:les valeurs

Je ne suis pas expert en Swift et je l'ai utilisé pendant quelques mois pour construire les Applications Mac. Je voudrais représenter en mémoire une structure de données comme celle de PHP tableaux associatifs mais dans Swift. Imaginons que j'ai une table de données à charger dans la mémoire avec les champs suivants/dossiers:

ID Surname Name
1  XXX     YYY
2  ZZZ     WWW
3  JJJ     KKK

Ce que je voudrais obtenir, c'est un tableau associatif comme celui que je voudrais être en mesure d'obtenir en PHP:

$arr[1]["Surname"] = "XXX"
$arr[1]["Name"] = "YYY"
$arr[2]["Surname"] = "ZZZ"
$arr[2]["Name"] = "WWW"

Je n'arrive pas à trouver la bonne structure de données de Swift pour obtenir le même résultat. J'ai essayé avec le morceau de code suivant:

class resObject: NSObject {
    private var cvs = [Int: [String: String]]()

    override init() {

        self.cvs[0] = ["Name" : "XXX"]
        self.cvs[0] = ["Surname" : "YYY"]
        self.cvs[1] = ["Name" : "ZZZ"]
        self.cvs[1] = ["Surname" : "WWW"]

        for (key, arr) in cvs {
            let sur = arr["Surname"]
            let nam = arr["Name"]

            println("Row \(key) - Surname: \(sur), Name: \(nam)")
        }

        super.init()
    }
}

Il me semble assez proche, mais il ne fonctionne pas. Ce que je reçois dans le résultat est le suivant (je n'aime pas à propos de l ' "Option(s)":

Row 0 - Surname: Optional("XXX"), Name: nil
Row 1 - Surname: Optional("ZZZ"), Name: nil

J'ai essayé de faire quelques tests en debug et j'ai remarqué que les données qui sont enregistrées dans la mémoire sont juste que de la dernière clé:valeur de la paire (c'est à dire si je attribuer Nom de famille d'abord et le Nom de la seconde, je reçois Nom de famille comme nul et le Nom avec la bonne valeur).

Veuillez prendre en compte que, comme dans l'exemple, je ne connais pas la structure de données lorsque je déclare la variable, donc je déclare qu'il est vide et le remplir par programmation plus tard.

Je ne sais pas si c'est juste moi de ne pas déclarer la structure de données correctement, ou si elle est rapide, qui ne permet pas de le faire. Toute aide sera grandement appréciée.

Merci beaucoup.
En ce qui concerne,
Alessio

Sonne comme ce que vous voulez est un Tableau de Dictionnaire des objets.
En désaccord. Vous pensez vraiment qu'il veut que chaque élément de tableau pour être amorphe et extensible pour contenir la Chaîne de caractères arbitraire touche -> valeur de Chaîne mappages? Ce n'est pas structuré de données codé en dur propriétés?

OriginalL'auteur Alessio | 2015-07-31