Il modo migliore per memorizzare una vasta gamma di variabili booleane?

voti
4

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?

È pubblicato 26/02/2009 alle 14:14
fonte dall'utente
In altre lingue...                            


3 risposte

voti
7

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. :)

Risposto il 26/02/2009 a 20:06
fonte dall'utente

voti
2

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.

Risposto il 05/11/2010 a 15:47
fonte dall'utente

voti
1

È 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"];
Risposto il 26/02/2009 a 22:36
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more