IOS: stocker un tableau avec NSUserDefault
Je veux stocker un tableau avec NSUserDefault
, je la mets dans applicationDidEnterBackground
[[NSUserDefaults standardUserDefaults] setObject:myArray forKey:@"myArray"];
et dans application didFinishLaunchingWithOption
myArray= [[NSMutableArray alloc]
initWithArray:[[NSUserDefaults standardUserDefaults]
objectForKey:@"myArray"]];
c'est ok pour le multitâche de l'appareil, mais pour les non-multitâches, comment puis-je le résoudre?
OriginalL'auteur CrazyDev | 2011-09-27
Vous devez vous connecter pour publier un commentaire.
Stocker l'objet dans
NSUserDefaults
dans-applicationWillTerminate:
, si elle n'a pas déjà été enregistré par l'invocation de-applicationDidEnterBackground:
(c'est à dire vérifier si le multitâche est pris en charge, si elle l'est, ne pas enregistrer parce que ça a déjà été enregistré.)OriginalL'auteur Jacob Relkin
Ne pas oublier de synchroniser le tampon avant de passer en arrière-plan:
OriginalL'auteur Vincent
Les réponses précédentes sont tout à fait correct, mais note que ni
applicationDidEnterBackground
niapplicationWillTerminate
sont garantis d'être appelé dans toutes les situations. Vous êtes généralement mieux de stocker des données importantes à chaque fois qu'il a changé.OriginalL'auteur fishinear
Enregistrer NSUserDefaults à
OriginalL'auteur kv0
ensemble
dans
OriginalL'auteur Saurabh Passolia
et n'oubliez pas d'utiliser le encodeWithCoder et initWithCoder l'intérieur de l'objet que vous essayez d'enregistrer et qui est contenue dans le tableau
OriginalL'auteur Catalin