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?
¿La mejor manera de almacenar una gran variedad de variables booleanas?
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. :)
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.
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"];













