IOS: speichern ein array mit NSUserDefault
Will ich speichern ein array mit NSUserDefault
, dann legte ich in applicationDidEnterBackground
[[NSUserDefaults standardUserDefaults] setObject:myArray forKey:@"myArray"];
und in application didFinishLaunchingWithOption
myArray= [[NSMutableArray alloc]
initWithArray:[[NSUserDefaults standardUserDefaults]
objectForKey:@"myArray"]];
es ist ok für multitasking-Gerät, aber für nicht-multitasking-Gerät, wie kann ich das Problem lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Speichern das Objekt in
NSUserDefaults
im-applicationWillTerminate:
, wenn es nicht bereits gespeichert worden ist, durch die Anrufung des-applicationDidEnterBackground:
(D. H. überprüfen Sie, ob multitasking unterstützt wird, wenn es ist, dann nicht speichern, weil es bereits gespeichert wurde.)Vergessen Sie nicht, die sync-buffer, bevor er in den hintergrund:
Die bisherigen Antworten sind alle richtig, aber beachten Sie, dass weder
applicationDidEnterBackground
nochapplicationWillTerminate
garantiert aufgerufen werden, in allen Situationen. Sie sind in der Regel besser die Speicherung von wichtigen Daten, wenn Sie sich geändert hat.NSUserDefaults speichern auf
set
in
und vergessen Sie nicht, verwenden Sie die encodeWithCoder und initWithCoder im inneren des Objekts, die Sie versuchen, zu speichern und, die enthalten ist in dem array