#iphone #objective-c #ios #nsmutablearray #nsuserdefaults
#iPhone #objective-c #iOS #nsmutablearray #nsuserdefaults
Вопрос:
я француз, поэтому, возможно, я допущу некоторые ошибки, извините за это: D
Я объясняю свою проблему, у меня есть XMLParser, который генерирует NSString (заголовок, категория, URL, …), Я бы хотел, чтобы генерируемый поток сохранялся, чтобы пользователь мог читать поток, даже если он не подключен к Интернету.
Сгенерированный поток можно найти здесь ==> http://www.recontv.fr/testXml.xml
Я пробую разные решения, и каждый раз я должен ошибаться, но это не работает. : (
Вам нужен мой код? Я объяснил свою проблему?
Заранее благодарим вас за помощь!
PS: Я публикую на разных форумах ответ, если я беру его где-то еще, я тоже выбираю здесь.
Ответ №1:
NSUserDefaults на самом деле не предназначен для сохранения массива из XML в него. Ваши основные решения — сохранить XML в файл и повторно проанализировать, когда пользователю необходимо получить доступ к информации в автономном режиме, или вы можете сохранить сам NSArray в файл, используя либо его методы writeToFile: , либо NSKeyedArchiver / NSKeyedUnarchiver. В каждом случае вы должны убедиться, что объекты в вашем массиве соответствуют протоколу NSCoding.
Комментарии:
1. хорошо, пока я жду, я продолжаю искать и нахожу протокол NSCoding, но я не знал, как это сделать. Я уже создал классы «encodeWithCoder» и «initWithCoder», но куда мне поместить код для сохранения массива? в XMLParser или в AppDelegate (где был инициализирован анализатор)?
2. Вы упорядочиваете строки / элементы, которые вы анализируете, в объекты контейнера (вы можете создать свои собственные или использовать библиотеку, такую как wonderxml code.google.com/p/wonderxml ), помещая их в массив по ходу работы, затем сохраните массив после завершения синтаксического анализа.
3. спасибо, я сделаю это и вернусь, если у меня возникнут вопросы, но я думаю, что нет ^^