Three20: отменить сетевой запрос - PullRequest
0 голосов
/ 12 сентября 2011

Я использую three20 и реализую модель, как на примере TTRemoteExamples. Теперь проблема в том, что: когда я щелкаю и открываю страницу, отправляется запрос TTURLRequest, во время извлечения данных из удаленного я нажимаю, чтобы открыть другую страницу. Но предыдущий сетевой запрос все еще там испортил мои загруженные данные. Поэтому я хочу знать, как отменить предыдущий сетевой запрос при переходе на другую страницу. Или когда я нажимаю кнопку, чтобы сделать новый запрос на той же странице.

спасибо ~

1 Ответ

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

Чтобы отменить TTURLRequest, сохраните ссылку на него (обычно в переменной экземпляра), а затем отправьте ему сообщение «отмена».Например:

[self.myRequest cancel];

Если вы не хотите, чтобы делегат был уведомлен об отмене запроса, выполните:

// I'm assuming self is the delegate here, that may not be true
[[self.myRequest delegates] removeObject:self];
[self.myRequest cancel];

Обычно вы также хотите сделать это вВаш метод контроллеров viewlocЕсли запрос продолжается после того, как viewController был освобожден, он попытается отправить ему сообщения делегата, и вы получите неудачный сбой доступа.

Что касается времени, когда вы отменяете его, это довы.Если вам нужно остановить его, когда пользователь покидает ваш контроллер представления, тогда реализуйте методы viewWillDisappear: или viewDidDisappear: UIViewController (не забудьте вызвать super!).

...