(Swift) Stockage et récupération de tableaux dans NSUserDefaults
Je suis en train de stocker un tableau de NSUserDefaults
et récupérer le tableau si nécessaire pour remplir un UITableView
.
Actuellement, je suis en utilisant:
//store data
NSUserDefaults.standardUserDefaults().setObject(myArray, forKey: "\(identity.text!)listA")
NSUserDefaults.standardUserDefaults().synchronize()
//retrieve data
let tabledata = NSUserDefaults.standardUserDefaults().stringForKey("\(identity.text!)listA")
myArray = [tabledata!]
tableView.reloadData()
Mais je reçois
erreur fatale: inattendue
nil
tout déballer une Option
valeur
quand vous essayez de charger les données. Je ne suis pas sûr si le problème est dans le stockage ou la récupération. Quelqu'un at-il vécu cela avant?
source d'informationauteur William Larson
Vous devez vous connecter pour publier un commentaire.
À partir de votre code je vois que vous êtes de stocker une partie de la matrice de
et de la récupération d'une chaîne de
Il y a probablement une incompatibilité de type, Vous pouvez stocker un type et d'en récupérer un autre type.
Lors de la récupération d'utiliser
arrayForKey()
ouobjectForKey()
voir le code ci-dessous.ou
Si c'est un tableau je voudrais aller avec le Premier.
Voici la façon de stocker et d'extrait de matrice de l'objet avec l'aide de
NSKeyArchive
.Pour Stocker un tableau de NSUserDefault.
D'Extrait de tableau de NSUserDefault.
Espère que cela vous aidera.
Je suis venu à cette question de recherche comment enregistrer un tableau de chaînes de UserDefaults mais n'a pas trouver une réponse claire ici. Cependant, j'ai trouvé la réponse dans Comment faire pour enregistrer les paramètres utilisateur à l'aide de NSUserDefaults. Lire cet article pour plus d'informations.
Sauvegarde et de la Récupération d'un tableau de Chaîne de UserDefaults
Sauver tableau
Récupérer tableau
Quoi êtes-vous le stocker dans le tableau?
Si c'est des objets, ça ne marchera pas, si C'est juste chaînes de caractères ou des chiffres il devrait être bon.
Suivant les étapes que vous prenez doit être à son tour sur l'exception des points d'arrêt et peut-être println() tout ce que vous pouvez afin que vous pouvez déterminer exactement où se trouvait le problème.
Comme un coup de feu dans l'obscurité, je dirais peut-être (identité.le texte!) est sortant de nulle
Aussi, vous devrez probablement changer à ce
Ce sera même pas essayer de courir à moins qu'il y est une valeur qu'elle peut utiliser
Dernière swift3 version pour stocker un tableau de données dans userdefaults et obtenir que le tableau de données à l'aide des touches
RetriveData
Cela a été changé dans swift 3.
Notez que cela fonctionne avec l'appareil, mais pas de jeux ou de simulateur
Magasin d'Utilisateur par Défaut:
De la récupération de tableau à partir d'Utilisateur par Défaut: