вопрос о чтении данных с URL на iphone / ipad - PullRequest
0 голосов
/ 06 сентября 2010

У меня есть приложение, которое использует UIWebView для загрузки веб-страницы, затем я анализирую ссылки (инициированные вызовом webViewDidFinishLoad) с этой веб-страницы и загружаю все эти html-файлы, используя NSString initWithContentsOfURL.Это работает, но загрузка ссылок занимает целую вечность ... хотя я уже определил, сколько времени занимает каждый вызов initWithContentsOfURL, и они разумны (в основном в диапазоне 0,2 с на страницу).Возможно ли, что UIWebView каким-то образом вмешивается в это, может быть, это приводит к блокировке потока?Кроме того, я заметил, что webViewDidFinishLoad вызывается несколько раз, есть ли причина, по которой UIWebView будет загружаться несколько раз?

Джеймс

Ответы [ 2 ]

0 голосов
/ 06 сентября 2010

Я решил, что рекомендую ASIHTTPRequest, который поддерживает асинхронные запросы .

0 голосов
/ 06 сентября 2010

initWtihContentsOfURL блокирует поток, к которому он вызывается, поэтому, если он выполняется в основном потоке, как я полагаю, вы делаете 1) За один раз будет происходить только одно, поэтому, если имеется 10 ссылок, теоретически для завершения потребуется 2 секунды.и 2) заблокировать пользовательский интерфейс приложения, чтобы в течение этого времени не было обратной связи с пользователем.

Взгляните на NSURLConnection, чтобы запустить его как отдельный поток, или посмотрите на NSOperationQueue, чтобы сделать это по-другому.

Поскольку вызов webViewDidFinishLoad вызывается несколько раз, я думаю, что требуется дополнительная информация о логике вашего приложения, чтобы дать хороший ответ

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