2016-07-06 1 views
1

У меня есть представление коллекции, которое показывает результаты XML-фида. Он отлично работает, но мне нужно сохранить результаты XML-фида на локальном компьютере (если, например, интернет-соединение недоступно).Перечислить элементы в XML-канале

Я знаю, как сохранить исходную ленту локально, но я думаю, что мне действительно нужно делать , итерации через элементы в фиде XML и сохранение каждого в качестве элемента NSData.

Это правильный способ подумать об этом, или у вас есть какие-либо полезные советы или советы?

- (void)startParsing 
{ 
    NSXMLParser *xmlparser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://images.apple.com/main/rss/hotnews/hotnews.rss#sthash.TyhRD7Zy.dpuf"]]; 
    [xmlparser setDelegate:self]; 
    [xmlparser parse]; 
    if (_marrXMLDataCollection.count != 0) { 
     // Save XML to NSData items in background? 

     [self.collectionView reloadData]; 
    } 
} 

Вот пример того, что подача выглядит, и я это хранится в каталоге Документы в localdata.plist также:

(
     { 
     link = "\nhttp://www.apple.com/pr/library/2016/04/26Apple-Reports-Second-Quarter-Results.html?sr=hotnews.rss"; 
     pubDate = "\nTue, 26 Apr 2016 14:44:21 PDT"; 
     title = "\nApple Reports Second Quarter Results"; 
    }, 
     { 
     link = "\nhttp://www.apple.com/final-cut-pro/in-action/trim-editing/?sr=hotnews.rss"; 
     pubDate = "\nWed, 20 Apr 2016 10:05:59 PDT"; 
     title = "\n\nFinal Cut Pro X helps small company delight world\U2019s biggest clients"; 
    }, 
     { 
     link = "\nhttp://www.apple.com/ipad-pro/?sr=hotnews.rss"; 
     pubDate = "\nMon, 21 Mar 2016 12:00:03 PDT"; 
     title = "\n\nApple Introduces 9.7-inch iPad Pro"; 
    }, 
     { 
     link = "\nhttp://www.apple.com/iphone-se/?sr=hotnews.rss"; 
     pubDate = "\nMon, 21 Mar 2016 11:58:09 PDT"; 
     title = "\n\nApple Introduces iPhone SE \U2014 the Most Powerful Phone with a 4-inch Display"; 
    }, 
+0

Почему бы просто не сохранить XML? – Wain

+0

@Wain Вы говорите, что сохраните XML в списке свойств или что-то другое? В этом случае я не был уверен, насколько хорошо это сработает, потому что в конечном итоге все равно получат фотографии в фиде, и мне нужно будет включить их в элементы NSData вместо этого/правдоподобно? – SRMR

+0

как будут фотографии в формате XML? base64 закодированные строки? – Wain

ответ

1

Вы можете просто сохранить XML непосредственно в файл, либо как двоичные данные, либо текст. Вам не нужно распаковывать его и конвертировать его во что угодно. Позже вы можете загрузить штраф и повторно запустить свой синтаксический код. Это наименьший вариант кода. Это более дорогостоящее время выполнения, но если ваш XML-файл довольно большой, вы не заметите разницы.

Если вы хотите сохранить обработанный контент, ваш XML должен быть превращен в массив объектов модели, и вы можете реализовать NSCoding для этих объектов модели, чтобы вы могли архивировать их на диск. Это должно быть более эффективным во время работы, но также больше кода.

+0

Удивительный. Я дам вам щедрость через 11 часов, когда это позволит мне. – SRMR

+0

Могу ли я задать вам быстрый вопрос: если фотографии не являются строками, закодированными в base64, будет ли решение быть другим? – SRMR

+0

, как правило, в этом случае канал будет содержать что-то вроде ссылок для загрузки изображений, поэтому XML-канал не будет содержать фактическое изображение. как таковой он не изменит ваше хранилище в любом случае, в зависимости от того, когда вы загружаете изображения. вы, вероятно, будете использовать отдельную систему кэширования изображений и не вмешиваться в нее. – Wain

 Смежные вопросы

  • Нет связанных вопросов^_^