2009-04-15 10 views
5

Prawdziwe pytanie dla początkujących. Mam podklasę NSView, w której utworzyć NSMutableArray zawierające NSValues. Kiedy chcę napisać tablicę do pliku przy użyciu writetofile: atomatically: plik jest tworzony, ale nie zawiera żadnych NSValues, które zawiera zmienna tablica. Czy ktoś wie, w jaki sposób mogę zapisać tę zmienną tablicę do pliku?problem z pisaniem NSMutableArray do pliku w kakao

Dzięki

Odpowiedz

15

NSValues ​​nie mogą być zapisane w plist (który jest co WriteToFile: atomowo: robi). Spójrz na wartości, które możesz zapisać, podając here. (NSNumber jest rodzajem NSValue można zaoszczędzić, ale inne NSValues ​​zawiedzie.)

Jeśli chcesz zapisać tablicę z NSValues, można użyć archiving zamiast WriteToFile: atomowo :. NSArray i NSValue obsługują archiwizację, więc wystarczy przekształcić tablicę w archiwum i zapisać dane w pliku. (Będzie ona zawierać NSValues ​​również.) Kod wygląda mniej więcej tak:

[NSKeyedArchiver archiveRootObject:myArray toFile:@"myPath"]; 

załadować go, wystarczy użyć:

NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithFile:@"myPath"]; 
+0

użyłem NSArchiver i NSUnarchiver zamiast i działa idealnie. Dzięki –

+3

Nie ma za co. Zauważ, że NSKeyed [Un] Archiver jest preferowany w porównaniu z NS [Un] Archiver w dzisiejszych czasach. –

Powiązane problemy