A legjobb módja annak, hogy tárolja egy nagy tömb logikai változók?

szavazat
4

Én dolgozom egy kódot, amely előírja, hogy tárolja 60 * 4 logikai értékek, a címeket ezeket az értékeket tárolnak egy plist. Azt követeli, hogy manipulálják a logikai értékek futásidőben, és nem tudta megtalálni a módját, hogy frissítse a plist fájl easily..also segítségével SQLite adatbázis tárolására logikai értékeket válik hektikus ilyen nagy mennyiségű adat ... Van olyan egyszerű módon, amit tud és magukhoz ezeket az értékeket könnyedén mind futásidőben után az alkalmazás elindul?

A kérdést 26/02/2009 14:14
a forrás felhasználó
Más nyelveken...                            


3 válasz

szavazat
7

Nem úgy értem, hogy egy eretnek, de van egy egyszerű szabály azokra az esetekre, mint ez: az elhamarkodott optimalizálás minden gonosz gyökere.

60 * 4 csak 240 logikai értékek. Még ha valahogy tárolni őket a lehető legrosszabb módon, és vegye 1k per logikai, ez még mindig csak 240k. Mindaddig, amíg ez tárolás helyett RAM, kit érdekel? Miért nem indul el a lehető legegyszerűbb módon kijavítani, ha valami jön később? SQLite lenne tökéletesen jó erre.

Ha közel a hajózási és azonosították ezt a problémát, minden eszközzel hagyja figyelmen kívül ezt a választ. :)

Válaszolt 26/02/2009 20:06
a forrás felhasználó

szavazat
2

Bár hogy lesz sokkal könnyebb használni NSArray vagy NSMutableArray mint már említettük, akkor nézd meg a szabványos C ++ vektor osztályban. AFAIK ez nagyon helytakarékos wrt. elosztása a memória.

Válaszolt 05/11/2010 15:47
a forrás felhasználó

szavazat
1

Lehet használni a NSData tároló eljárást a logikai tömb, de akkor is csak hagyja kakaót csinálni természetesen:

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

azután

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

Lekérdezni:

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

Érdemes lehet őket egy változékony tömböt:

NSMutableArray* the240ThatCanBeEdited = [NSMutableArray arrayWithArray:savedBools];

Aztán kilép, mentse ki őket a

[[NSUserDefaults standardUserDefaults] setObject:the240ThatCanBeEdited forKey:@"MyNameForThe240"];
Válaszolt 26/02/2009 22:36
a forrás felhasználó

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