Чтение, а затем сохранение изображения из RSS-канала в приложение для iPhone - PullRequest
1 голос
/ 23 мая 2011

надеюсь, кто-то может помочь.Я ценю, что есть несколько вопросов, которые похожи здесь, но не достаточно конкретны для меня.

Я учу себя iOS, поэтому решил написать простое приложение для чтения RSS с сайта Wordpress.Все работает нормально, но теперь я хочу попробовать и сохранить страницу в iOS для чтения в автономном режиме.Я подумал, что это был бы хороший способ научиться кодировать и хранить данные.

Чтение узлов XML и сохранение заголовка, описания и т. Д. - это хорошо, это работает.У меня проблема, когда в ленте есть изображение.Если я прочту и сохраню XML-информацию «content: encoded», то просматриваю ее в веб-представлении, которое работает нормально, если только я не в автономном режиме, когда все будет работать, кроме изображения, так как это всего лишь HTML-ссылка.

Я предполагаю, что хочу

a) определить URL изображения, затем удалить его из содержимого: закодировано b) загрузить и сохранить в моем массиве, связанном с постом c), а затем снова прочитать изображение обратно.

Или что-то с другим подходом, но похожим эффектом.

Если бы был способ добавить новый узел 'featuredimage' XML или аналогичный, я думаю, это было бы относительно просто, но яне вижу, как это сделать.

Буду очень признателен за любые идеи / указатели по этому вопросу, большое спасибо.

1 Ответ

1 голос
/ 23 мая 2011

Я бы предложил немного другой подход, который, как мне кажется, должен облегчить задачу:

  1. идентифицируйте изображение:

вы можете использовать любую библиотеку RegEx для iOS для анализа вашей content:encoded информации;

  1. скачать изображение:

используйте ASIHTTPRequest или NSUURLRequest, чтобы загрузить изображение и сохранить его локально;

  1. изменить информацию content:encoded:

изменить тег <img> так, чтобы его атрибут src был установлен для локально сохраненного изображения (вместо внешнего); Вы можете сделать это, используя тот же подход, что и в пункте 1. Другими словами, скажем, у вас есть изображение вроде:

`<img src="http://xxxx.yyy.zzzz/image.png" />`

Вы можете изменить это на:

`<img src="image.png" />`
  1. правильно указать baseURL при загрузке HTML в UIWebView:

если вы укажете baseURL при вызове селектора loadHTMLString:baseURL:, любой "локальный" URI будет разрешен по указанному вами baseURL. Если вы решили сохранить изображение в каталоге документов, то вы можете сделать это:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
[_label loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:documentsDirectory]];

так что любое изображение вроде:

`<img src="localImage.png" />`

будет получено локально.

Надеюсь, это поможет.

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