Najlepszym sposobem, aby przechowywać dużą tablicę zmiennych logicznych?

głosy
4

Pracuję nad kodem, który wymaga mnie do przechowywania 60 * 4 wartości logicznych, tytuły dla tych wartości są przechowywane w plist. Potrzebuję manipulować logicznych wartości w czasie rzeczywistym i nie mógł znaleźć sposób, aby zaktualizować plik plist easily..also użyciu bazy danych sqlite do przechowywania wartości logicznych staje się gorączkowy dla takiej dużej ilości danych ... Czy jest jakiś prosty sposób poprzez które można przechowywać i pobierać te wartości z łatwością zarówno w czasie wykonywania i po uruchomieniu aplikacji?

Utwórz 26/02/2009 o 14:14
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
7

Nie chcę być heretykiem, ale istnieje prosta reguła takich przypadkach: przedwczesna optymalizacja jest źródłem wszelkiego zła.

60 * 4 jest tylko 240 wartości logiczne. Nawet jeśli jakoś uda się je przechowywać w sposób najgorszy z możliwych i wziąć 1k za logiczną, to nadal tylko 240k. Dopóki to przechowywanie zamiast RAM, kogo to obchodzi? Dlaczego nie zacząć najprostszy możliwy sposób i go naprawić, gdy coś przychodzi do ciebie później? SQLite byłoby perfekcyjnie do tego.

Jeśli jesteś blisko do żeglugi i zidentyfikowali w tym problemu, za wszelką cenę zignorować tę odpowiedź. :)

Odpowiedział 26/02/2009 o 20:06
źródło użytkownik

głosy
2

O ile jej będzie znacznie łatwiejszy w użyciu NSArray lub NSMutableArray jak wspomniano powyżej, można spojrzeć na użyciu standardowego klasa C ++ wektorowych. AFAIK jest to bardzo efektywny przestrzeń wrt. alokacja pamięci.

Odpowiedział 05/11/2010 o 15:47
źródło użytkownik

głosy
1

Można użyć metody NSData przechowywania tablicę logiczną, ale można też po prostu pozwolić kakao zrobić to naturalnie:

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

następnie

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

Odzyskaj je:

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

prawdopodobnie będziesz chciał je w zmienny tablicy:

NSMutableArray* the240ThatCanBeEdited = [NSMutableArray arrayWithArray:savedBools];

Następnie zamknąć, zapisać je z

[[NSUserDefaults standardUserDefaults] setObject:the240ThatCanBeEdited forKey:@"MyNameForThe240"];
Odpowiedział 26/02/2009 o 22:36
źródło użytkownik

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