2017-05-26 1 views
-1

J'ai toujours eu des difficultés avec les tableaux; J'essaie de sauvegarder des tableaux dans les valeurs par défaut de l'utilisateur. mes tableaux sont des types String, Double et UIImageView. Je les déclarais comme:Enregistrer et lire des tableaux dans UserDefaults swift

var nameHospital = [String]() 
var distanceBetweenLocations = [Double]() 
var images = [UIImage]() // <-- Haven't tried with this yet 

et je tente de les enregistrer dans UserDefaults comme ça ...

UserDefaults.standard.set(nameHospital, forKey: "name") 

inviteras thème comme si

UserDefaults.standard.object(forKey: "name") 

Ensuite, quand je veux imprimer pour voir si cela a fonctionné, il imprime seulement une valeur (dernière valeur du For Cycle) puis je place mon impression dans le for et comme je m'y attendais, il a imprimé la valeur puis l'a remplacée pour la valeur suivante et ainsi de suite.

Qu'est-ce que je fais mal? Comment puis-je appeler chaque valeur séparément pour d'autres fonctions? Et comment puis-je le faire, mais avec mon tableau UIImage? Merci pour vos réponses.

+1

[Modifier] votre question avec le code réel qui vous cause des problèmes. – rmaddy

+2

Et s'il vous plaît lisez la documentation pour 'UserDefaults'. Il vous indique ce que vous pouvez stocker. – rmaddy

Répondre

-1

Vous êtes voir celui-ci: NSUserDefault

ENREGISTRER:

let kUserDefault = NSUserDefaults.standardUserDefaults() 
kUserDefault.setObject(["KIRIT" , "MODI" , "FIRST" , "LAST"], forKey: "nameArray") 
kUserDefault.synchronize() 

LIRE:

kUserDefault.arrayForKey("nameArray")! 
kUserDefault.objectForKey("nameArray")! 
kUserDefault.valueForKey("nameArray") 

Swift 3

let kUserDefault = UserDefaults.standard 
kUserDefault.set(["KIRIT" , "MODI" , "FIRST" , "LAST"], forKey: "nameArray") 
kUserDefault.synchronize() 

let data = kUserDefault.array(forKey: "nameArray")! as? [String] ?? [String]() 
print(data) 

pour plus d'informations, visitez store value in userDefaults

+0

@Foolish, grâce à l'amélioration de la réponse. –