Как прервать ожидание NSXMLParser на iPhone - PullRequest
0 голосов
/ 14 мая 2010

При инициализации NSXLParser, как показано ниже:

NSXMLParser* xmlParser=[[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:urlstring]];

если сервер не работает, он подождет некоторое время, прежде чем поток вернется. Это действительно раздражает, даже если я выйду из приложения и перезапущу приложение, оно будет продолжать ждать с черным экраном, пока не истечет время ожидания.

Как мне отменить инициализацию? Есть ли лучший способ проверить, работает ли сервер перед вызовом анализатора? Спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 14 сентября 2011

Вы должны использовать NSURLConnection и его делегатов для загрузки в тип NSData. Тогда вы сможете правильно контролировать соединение. Оттуда вы можете передать NSData в NSXMLParser и управлять им отдельно. Я надеюсь, что это поможет вам.

0 голосов
/ 14 мая 2010

В итоге я использовал UIWebView, чтобы сначала запросить URL. Если загрузка закончится, я вызову xmlparser, чтобы снова запросить тот же URL. Хорошая особенность запроса UIWebView заключается в том, что он выполняется в другом потоке, поэтому пользовательский интерфейс не останавливается.

Это не идея; Я ненавижу запрашивать один и тот же URL дважды. Если у вас есть лучшее предложение, пожалуйста, помогите.

...