Sto lavorando su un codice che mi obbliga a memorizzare 60 * 4 valori booleani, i titoli per questi valori vengono memorizzati in un plist. Ho bisogno di manipolare i valori booleani in fase di esecuzione e non sono riuscito a trovare un modo per aggiornare il file plist easily..also utilizzando database SQLite per memorizzare i valori booleani diventa frenetico per tale grande quantità di dati ... C'è un modo semplice attraverso che posso archiviare e recuperare questi valori facilmente sia in fase di esecuzione e dopo l'avvio dell'applicazione?
Il modo migliore per memorizzare una vasta gamma di variabili booleane?
Non voglio dire di essere un eretico, ma c'è una regola semplice per casi come questo: l'ottimizzazione prematura è la radice di tutti i mali.
60 * 4 è solo 240 booleani. Anche se si riesce in qualche modo a memorizzarli nel peggior modo possibile e prendere 1k per booleano, che è ancora solo 240k. Fino a quando questo è di stoccaggio, piuttosto che RAM, chi se ne frega? Perché non iniziare con il modo più semplice possibile e risolvere il problema quando qualcosa viene a voi più tardi? SQLite sarebbe perfettamente bene per questo.
Se siete vicino al trasporto ed hanno identificato questo come un problema, con tutti i mezzi di ignorare questa risposta. :)
Mentre la sua intenzione di essere molto più facile da usare NSArray o NSMutableArray come detto sopra, si poteva guardare utilizzando la classe standard ++ C vettoriale. Per quanto ne sappia questo è molto WRT spazio-efficiente. l'allocazione di memoria.
È possibile utilizzare il metodo NSData di memorizzare l'array booleano, ma si potrebbe anche lasciare che il cacao farlo, naturalmente:
NSArray* arrayOfBools; // array of 240 NSNumbers, each made with [NSNumber numberWithBool:NO];
poi
[[NSUserDefaults standardUserDefaults] setObject:arrayOfBools forKey:@"MyNameForThe240"];
recuperarli:
NSArray* savedBools = [[[NSUserDefaults standardUserDefaults] objectForKey:"MyNameForThe240"];
È probabile che li vuole in un array mutabile:
NSMutableArray* the240ThatCanBeEdited = [NSMutableArray arrayWithArray:savedBools];
Poi smettere, salvarli con la
[[NSUserDefaults standardUserDefaults] setObject:the240ThatCanBeEdited forKey:@"MyNameForThe240"];













