Ich bin auf einem Code arbeiten, die mich 60 * 4 Boolesche Werte speichern erfordert, werden die Titel für diese Werte in einer plist gespeichert werden. Ich benötige die Booleschen Werte zur Laufzeit zu manipulieren und konnte nicht einen Weg finden, die plist-Datei zu aktualisieren easily..also zum Speichern der Boolesche Werte SQLite-Datenbank unter Verwendung für eine solche große Menge von Daten hektisch wird ... Gibt es eine einfache Art und Weise durch was ich kann diese Werte leicht speichern und abrufen, sowohl zur Laufzeit und nach dem Start der Anwendung?
Der beste Weg, eine große Palette von Booleschen Variablen speichern?
Damit meine ich nicht ein Ketzer sein, aber es gibt eine einfache Regel für Fälle wie diesen: vorzeitige Optimierung ist die Wurzel allen Übels ist.
60 * 4 nur 240 Boolesche Werte. Selbst wenn Sie irgendwie speichern sie in der schlimmsten Art und Weise zu verwalten und zu 1k pro boolean nehmen, das ist nach wie vor nur 240k. Solange die Lagerung ist nicht RAM, wer sich interessiert? Warum nicht mit möglichst einfachen Weise starten und beheben, wenn etwas später zu Ihnen kommt? SQLite würde dies völlig in Ordnung sein.
Wenn Sie zum Versenden der Nähe sind und haben dies als ein Problem identifiziert, mit allen Mitteln diese Antwort ignorieren. :)
Während seine viel einfacher sein würde NSArray oder NSMutableArray zu verwenden, wie oben erwähnt, könnte man sich den Standard C ++ Vektor-Klasse bei Verwendung. AFAIK ist dies sehr platzspar WRT. die Zuweisung von Speicher.
Sie könnten die NSData Verfahren zum Speichern des boolean-Array verwenden, aber man könnte auch einfach lassen Kakao es natürlich tun:
NSArray* arrayOfBools; // array of 240 NSNumbers, each made with [NSNumber numberWithBool:NO];
dann
[[NSUserDefaults standardUserDefaults] setObject:arrayOfBools forKey:@"MyNameForThe240"];
Rufen Sie sie:
NSArray* savedBools = [[[NSUserDefaults standardUserDefaults] objectForKey:"MyNameForThe240"];
Sie wollen, dass sie wahrscheinlich in einer änderbaren Array:
NSMutableArray* the240ThatCanBeEdited = [NSMutableArray arrayWithArray:savedBools];
Dann auf beenden, speichern Sie sie heraus mit der
[[NSUserDefaults standardUserDefaults] setObject:the240ThatCanBeEdited forKey:@"MyNameForThe240"];













