0
votes

Userdefault renvoie 0 éléments lors de l'appel dans evakefromnib

J'ai un uicollectionview code> Intérieur UitailViewCell CODE> et j'utilise UserDefault pour enregistrer un tableau de l'élément sélectionné dans DisSeLeCitem CODE> Fonction État après avoir rejeté le contrôleur d'affichage du parent d'entre eux: xxx pré>

et chaque fois que j'affiche le contrôleur d'affichage, je définis mon tableau avec UserDefault à nouveau dans eWakefromnib: p>

arrSelectedIndex = UserDefaults.standard.array(forKey: "arrayOfSelectedItem") as? [IndexPath] ?? [IndexPath]()


0 commentaires

3 Réponses :


3
votes

Le problème est cette ligne: xxx

qui échouera, car ce que vous avez enregistré sous cette touche n'est pas un tableau. Voici ce que vous avez dit plus tôt: xxx

Ce que vous avez sauvegardé est encodeddata . Ce n'est pas un tableau. C'est une donnée. Le tableau est codé à l'intérieur.


0 commentaires

2
votes

première chose est de sauvegarder la liste dans UserDefault, il n'est pas nécessaire de l'archiver, vous pouvez si contient des types de données de base. Deuxièmement, si vous archivez la liste avant de l'enregistrer sur UserDefault, vous devez absréner les données codées pour obtenir la liste.

Voici la méthode, xxx

espoir Cela aidera.


1 commentaires

Désolé mais j'ai un autre problème. J'ai utilisé ce moyen pour enregistrer des articles sélectionnés et chaque fois que je renvoie la vue parent, je supprimai toutes les choses de UserDefault mais que les données gardent toujours la valeur même si je reconstruisons l'application. Je ne peux pas l'enlever. Comment puis je faire ça?



1
votes

Merci à tous. J'ai essayé de se manifester avant de la mettre à nouveau à mon tableau et ça a fonctionné.


0 commentaires