NSXMLParser initWithContentsOfURL с dispatch_async( dispatch_get_global_queue(0, 0), ^{ timeout

Я использую очереди отправки с NSXMLParser для получения данных XML и их анализа.

Код, который я использую, как показано ниже:

dispatch_async( dispatch_get_global_queue(0, 0), ^{

            NSURL *urlNew = [NSURL URLWithString:url_GetData];
            NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:urlNew];
            xmlParser.delegate = self;
            // call the result handler block on the main queue (i.e. main thread)
            dispatch_async( dispatch_get_main_queue(), ^{
                // running synchronously on the main thread now -- call the handler
                [xmlParser parse];


            });
        });

Но когда серверу требуется слишком много времени для ответа, мне нужно показать сообщение об ошибке. Я пытался показать предупреждение внутри метода делегата по умолчанию, но не работал должным образом.

Пожалуйста, помогите мне установить тайм-аут на 30 секунд для приведенного выше кода.

Если я не использую очередь отправки, пользовательский интерфейс останавливается до получения ответа.

Есть ли способ достичь тайм-аута в приведенном выше фрагменте кода.

Благодарю.

0 ответов

Другие вопросы по тегам