2013-05-31 7 views
0

Я пытаюсь загрузить веб-сайт, но получаю только около четверти всего сайта.Веб-сайт не загружается полностью - с помощью stringWithContentsOfURL:

NSString *tagiString = @"http://www.tagesanzeiger.ch"; 
    NSURL *tagiURL = [NSURL URLWithString:tagiString]; 
    NSError *error; 
    NSString *text =[NSString stringWithContentsOfURL:tagiURL 
              encoding:NSASCIIStringEncoding 
               error:&error]; 

У меня нет ошибок, указывающих, что загрузка не завершена. Любые идеи?

+0

у вас пытались войти в текстовую строку и были проверены, если вы получаете требуемую строку html или нет? – Divyu

+0

Можете ли вы рассказать о том, что вы ожидаете от того, что получаете? –

+1

Я проверил ваш код. Мне удалось получить все данные из URL-адреса. Распечатайте текст в консоли и проверьте. –

ответ

1

Я бы не рекомендовал использовать stringWithContentsOfURL для этого. Вместо этого вы должны использовать встроенные сетевые классы iOS, которые обеспечивают гораздо больший контроль над процессами загрузки. Например, с stringWithContentsOfURL у вас нет возможности настроить или установить тайм-аут, что означает, что при медленном подключении загрузка может легко завершиться неудачно (возможно, это происходит здесь).

По умолчанию stringWithContentsOfURL также не является асинхронным, поэтому, если вы не используете этот код на вторичном потоке, вы остановите свой интерфейс (что плохо).

Этот существующий вопрос - Making stringWithContentsOfURL asynchronous - Is it safe? - содержит пример кода, показывающий, как загрузить веб-сайт в виде строки, используя более подходящий класс NSURLConnection. Это упростит обработку ошибок и отладки.

+0

Удивительный ответ, спасибо! – Pete

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