Можем ли мы остановить синхронный запрос?Как? - PullRequest
1 голос
/ 18 января 2012

Буду очень признателен, если кто-нибудь поможет мне, как остановить синхронный запрос к серверу, особенно при переходе от фона к переднему плану.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 18 января 2012

Если вы используете обычное NSURLConnection, вы можете просто отправить ему команду отмены. ( * документы * 1002)

init вроде:

 NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

отменить так:

[connection cancel];
0 голосов
/ 18 января 2012

Мы говорим о +[NSURLConnection sendSynchronousRequest:returningResponse:error:]? В этом случае вы не можете остановить этот запрос.

Если вам необходимо потенциально остановить работу сети в середине полета, вам необходимо использовать асинхронный API. Лично я предпочитаю катиться самостоятельно, используя NSURLConnection, и какой объем работы для текущей задачи является наименьшим, обычно NSOperation или просто какой-нибудь GCD. Я настоятельно рекомендую вам научиться использовать NSURLConnection, даже если вы решите использовать какой-то другой подход.

Один такой другой подход - AFNetworking , который охватывает NSURLConnection - это NSOperation, который можно назвать cancel on.

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