¿La mejor manera de almacenar una gran variedad de variables booleanas?

votos
4

Estoy trabajando en un código que me obliga a almacenar 60 * 4 valores booleanos, los títulos de estos valores se almacenan en un plist. Necesito manipular los valores booleanos en el tiempo de ejecución y no pude encontrar una manera de actualizar fácilmente el archivo plist ... también el uso de la base de datos sqlite para almacenar los valores booleanos se vuelve agitado para una cantidad tan grande de datos ... ¿Hay alguna manera simple de pasarlo? que puedo almacenar y recuperar estos valores fácilmente tanto en tiempo de ejecución como después de que comience la aplicación?

Publicado el 26/02/2009 a las 14:14
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
7

No quiero ser un hereje, pero hay una regla simple para casos como este: la optimización prematura es la raíz de todo mal.

60 * 4 es solo 240 booleanos. Incluso si de alguna manera logras almacenarlos de la peor manera posible y tomas 1k por booleano, eso sigue siendo solo 240k. Mientras eso sea almacenamiento en lugar de RAM, ¿a quién le importa? ¿Por qué no comenzar de la manera más simple posible y arreglarlo cuando algo te viene después? SQLite estaría perfectamente bien para esto.

Si está cerca del envío y ha identificado esto como un problema, de ninguna manera ignore esta respuesta. :)

Respondida el 26/02/2009 a las 20:06
fuente por usuario

votos
2

Mientras que va a ser mucho más fácil de usar NSArray o NSMutableArray como se mencionó anteriormente, se podría contemplar la utilización de la clase Vector ++ C estándar. Aparentemente, este es muy WRT uso eficiente del espacio. la asignación de memoria.

Respondida el 05/11/2010 a las 15:47
fuente por usuario

votos
1

Podría usar el método NSData para almacenar la matriz booleana, pero también podría dejar que el cacao lo haga de forma natural:

NSArray* arrayOfBools; // array of 240 NSNumbers, each made with [NSNumber numberWithBool:NO];

entonces

[[NSUserDefaults standardUserDefaults] setObject:arrayOfBools forKey:@"MyNameForThe240"];

Recuperarlos:

NSArray* savedBools = [[[NSUserDefaults standardUserDefaults] objectForKey:"MyNameForThe240"];

Es probable que los quiera en una matriz mutable:

NSMutableArray* the240ThatCanBeEdited = [NSMutableArray arrayWithArray:savedBools];

Luego, al salir, guardarlos con el

[[NSUserDefaults standardUserDefaults] setObject:the240ThatCanBeEdited forKey:@"MyNameForThe240"];
Respondida el 26/02/2009 a las 22:36
fuente por usuario

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