J'ai un et chaque fois que j'affiche le contrôleur d'affichage, je définis mon tableau avec UserDefault à nouveau dans eWakefromnib: p> 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:
arrSelectedIndex = UserDefaults.standard.array(forKey: "arrayOfSelectedItem") as? [IndexPath] ?? [IndexPath]()
3 Réponses :
Le problème est cette ligne: 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: p> Ce que vous avez sauvegardé est encodeddata code>. Ce n'est pas un tableau. C'est une donnée. Le tableau est codé à l'intérieur. p> p>
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, p> espoir Cela aidera. P> p>
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 code> gardent toujours la valeur même si je reconstruisons l'application. Je ne peux pas l'enlever. Comment puis je faire ça?
Merci à tous. J'ai essayé de se manifester avant de la mettre à nouveau à mon tableau et ça a fonctionné. P>