2010-05-13 3 views
0

Когда INIT в NSXLParser, как показано ниже:Как прервать NSXMLParser iPhone ждать

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

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

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

ответ

2

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

+0

Благодарим вас за ответ. Я полностью забыл об этом вопросе. Я сделал то, что вы предложили. Кроме того, необходимо добавить NSURLConnection в runloop, чтобы предотвратить зависание пользовательского интерфейса во время загрузки: http://www.cocoabyss.com/foundation/nsurlconnection-synchronous-asynchronous/ –

+0

Это помогло мне :-) –

+0

UPVOTED: -) :-) –

0

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

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

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

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