Sunt de lucru pe un cod care mi cere pentru a stoca 60 * 4 valori booleene, titlurile pentru aceste valori sunt stocate într-un plist. Am nevoie pentru a manipula valorile booleene în timpul rulării și nu a putut găsi o modalitate de a actualiza fișierul plist easily..also utilizând baza de date SQLite pentru stocarea valorilor booleene devine agitat pentru o astfel de cantitate mare de date ... Există vreo modalitate simplă prin pe care le pot stoca și prelua aceste valori ușor, atât în timpul rulării și după pornirea aplicației?
Cel mai bun mod de a stoca o gama larga de variabile boolean?
Nu vreau să fiu un eretic, dar există o regulă simplă pentru astfel de cazuri: optimizarea prematură este rădăcina tuturor relelor.
60 * 4 este de numai 240 boolean. Chiar dacă cumva reușesc să le stoca în cel mai rău mod posibil și să ia 1K pe boolean, care este încă doar 240k. Atâta timp cât e de stocare, mai degrabă decât RAM, cui îi pasă? De ce nu începe cu cel mai simplu mod posibil și fixați-l atunci când ceva vine la tine mai târziu? SQLite ar fi perfect bine pentru acest lucru.
Dacă sunteți aproape de transport maritim și au identificat acest lucru ca o problemă, prin toate mijloacele ignora acest răspuns. :)
In timp ce ei va fi mult mai ușor de utilizat NSArray sau NSMutableArray așa cum sa menționat mai sus, ai putea uita la folosind clasa vector standard de C ++. AFAIK acest lucru este foarte eficient WRT-spațiu. alocarea de memorie.
Ai putea folosi metoda NSData de stocare matrice boolean, dar, de asemenea, ai putea lăsa pur și simplu de cacao se face în mod natural:
NSArray* arrayOfBools; // array of 240 NSNumbers, each made with [NSNumber numberWithBool:NO];
apoi
[[NSUserDefaults standardUserDefaults] setObject:arrayOfBools forKey:@"MyNameForThe240"];
le Preluare:
NSArray* savedBools = [[[NSUserDefaults standardUserDefaults] objectForKey:"MyNameForThe240"];
Tu probabil le va dori într-o matrice mutabil:
NSMutableArray* the240ThatCanBeEdited = [NSMutableArray arrayWithArray:savedBools];
Apoi, pe renunțe, salvați-le cu
[[NSUserDefaults standardUserDefaults] setObject:the240ThatCanBeEdited forKey:@"MyNameForThe240"];













