проблема записи NSMutableArray в файл в какао - PullRequest
5 голосов
/ 15 апреля 2009

Настоящий вопрос для начинающих. У меня есть подкласс NSView, в котором я создаю NSMutableArray, содержащий NSValues. Когда я хочу записать массив в файл, используя writetofile: atomatics: файл создан, но он не содержит ни одного значения NSValues, которое содержит изменяемый массив. Кто-нибудь знает, как я могу успешно записать этот изменяемый массив в файл?

Спасибо

1 Ответ

15 голосов
/ 15 апреля 2009

NSValues ​​не может быть сохранено в plist (что и делает writeToFile: atomically:). Взгляните здесь на значения, которые вы можете сохранить. (NSNumber - это разновидность NSValue, которую вы можете сохранить, но другие NSValue потерпят неудачу.)

Если вы хотите сохранить свой массив с помощью NSValues, вы можете использовать архивирование вместо writeToFile: atomically :. NSArray и NSValue поддерживают архивирование, поэтому вы просто конвертируете массив в архив и сохраняете эти данные в файл. (Он также будет включать NSValues.) Код выглядит примерно так:

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

Чтобы загрузить его, просто используйте:

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