Как обновить массив, созданный из plist - ошибка ReadOnly - PullRequest
0 голосов
/ 22 января 2012

Я прочитал список в память и мне нужно изменить одно из значений, если пользователь нажимает на строку.

Я прочитал список в память, а затем показал его в виде таблицы.

Это чтение в память:

 self.questions = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"q1" ofType:@"plist"]];

Затем мне нужно обновить одно из значений, только когда оно находится в памяти. Я думаю, я мог бы создать еще один целый массив, но мне кажется, что я мог бы сделать что-то вроде этого:

[[[self.questions valueForKey:title]  objectAtIndex:indexPath.row] valueForKey:@"Checked"] = @"1";

При запуске я получаю сообщение об ошибке, в котором говорится, что значение доступно только для чтения. Коротко о создании другого массива для обработки отмеченных и включенных, есть ли способ сделать это?

спасибо!

Ответы [ 2 ]

1 голос
/ 22 января 2012

просто используйте NSMutableDictionary класс для self.questions:

в * .h

NSMutableDictionary *questions;

в * .m

self.questions = [NSMutableDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"q1" ofType:@"plist"]];
0 голосов
/ 22 января 2012

Используйте +[NSPropertyListSerialization propertyListWithData:options:format:error:] для декодирования содержимого файла и передайте либо параметр NSPropertyListMutableContainers, либо параметр NSPropertyListMutableContainersAndLeaves.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...