Jeg jobber med en kode som krever meg å lagre 60 * 4 boolske verdier, er titlene for disse verdiene blir lagret i en plist. Jeg trenger å manipulere boolske verdier under kjøring og kunne ikke finne en måte å oppdatere plist filen easily..also blir hektisk for slike store mengder data ved hjelp av SQLite database for lagring av boolske verdier ... Er det noen enkel måte gjennom som jeg kan lagre og hente disse verdiene lett både under kjøring og etter programmet starter?
Beste måten å lagre et stort utvalg av boolske variabler?
Jeg mener ikke å være en kjetter, men det er en enkel regel for tilfeller som dette: prematur optimalisering er roten til alt ondt.
60 * 4 kun 240 booleans. Selv om du eller annen måte klarer å lagre dem i den verst tenkelige måten og ta 1k per boolsk, det er fortsatt bare 240k. Så lenge det er lagring i stedet for RAM, hvem bryr seg? Hvorfor ikke begynne med enklest mulig måte og fikse det når noe kommer til deg senere? SQLite ville være helt greit for dette.
Hvis du er nær til shipping og har identifisert dette som et problem, for all del ignorere dette svaret. :)
Mens det kommer til å være mye enklere å bruke NSArray eller NSMutableArray som nevnt ovenfor, kan du se på bruk av standard C ++ vektor klasse. AFAIK dette er svært plassbesparende wrt. tildeling av minnet.
Du kan bruke NSData metoden for lagring av boolsk array, men du kan også bare la kakao gjøre det naturlig:
NSArray* arrayOfBools; // array of 240 NSNumbers, each made with [NSNumber numberWithBool:NO];
deretter
[[NSUserDefaults standardUserDefaults] setObject:arrayOfBools forKey:@"MyNameForThe240"];
Hente dem:
NSArray* savedBools = [[[NSUserDefaults standardUserDefaults] objectForKey:"MyNameForThe240"];
Du vil sannsynligvis ha dem i en foranderlig matrise:
NSMutableArray* the240ThatCanBeEdited = [NSMutableArray arrayWithArray:savedBools];
Deretter på slutte, lagre dem ut med
[[NSUserDefaults standardUserDefaults] setObject:the240ThatCanBeEdited forKey:@"MyNameForThe240"];













