Кодирование значения ключа - PullRequest
5 голосов
/ 18 декабря 2008

У меня был прямой подход к превращению пар ключ / значение XML-фрагмента в NSDictionary, когда я запускал простое приложение для iPhone. Проблема в том, что мне нужно превратить экземпляры NSDictionary, которые когда-то заполняли мой UITableView, в пользовательские классы, потому что они требуют поведения и дополнительной сложности. Проблема здесь в том, что теперь для меня создание экземпляра объекта и заполнение его переменных экземпляра парами ключ / значение из веб-службы становится намного более трудным. Я больше не могу бросить его в метод, который перебирает XML и использует KVC для установки переменных экземпляра.

Какое другое решение существует?

Ответы [ 2 ]

8 голосов
/ 18 декабря 2008

Вы все еще можете использовать методы кодирования значения ключа в своем пользовательском классе, если вы правильно называете свои переменные, в этом нет никакой разницы. Тем не менее, когда я работаю с XML, я обычно заканчиваю тестированием каждого имени узла или созданием таблицы подстановки ключей, поскольку имена в источнике данных, с которым я работаю, не соответствуют кодированию значений ключей. Если у вас есть контроль над источником данных, вы можете просто продолжать использовать setValue:forKey:.

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

1 голос
/ 18 декабря 2008

Посмотрите на NSCoding. Вы можете использовать протокол NSCoding для сохранения вашего объекта, свойств и всего в качестве данных.

Как только ваш объект совместим с NSCoding, вы можете просто заархивировать весь массив объектов с помощью NSKeyedArchiver.

Обратите внимание, что при наличии большого количества объектов это может существенно повлиять на производительность приложения на iPhone во время загрузки и сохранения.

...