Я хочу остановить/отменить операцию в случае повторного запуска запроса. Метод cancelAllHTTPOperationsWithMethod
работает нормально, но у меня проблема, когда AFNetworking уже получил результаты, и мой SuccessBlock срабатывает - я хочу остановить его в ближайшем будущем. Но проблема в том, что operation.isCancelled не отменяется.
Вопрос в том, нужно ли мне выполнять «очень длинный блок успеха» в NSOperation
и также отменять их, или есть более простой и быстрый способ?
Код:
[[AFHTTPClient sharedInstance] cancelAllHTTPOperationsWithMethod:@"GET" path:@"path"];
[[AFHTTPClient sharedInstance] getPath:@"path" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
for (longLoop) {
// do something long
if (self.isCancelled) return; // this won't fire no matter how often i run it
}
});
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// do something to fail
}];
operation.isCancelled
в этом цикле. Вы говорите, что operation.isCancelled не отменена, но это ничего не значит. Дело в том, установлено? - person trojanfoe   schedule 30.01.2014cancelAllHTTPOperationsWithMethod
ранее (код, который я вставил, находится в цикле, скажем), однако, если SuccessBlock начнет работать, даже если я отменю его черезcancelAllHTTPOperationsWithMethod
, флаг не изменится - person Nat   schedule 30.01.2014self.isCancelled
? - person trojanfoe   schedule 30.01.2014