Есть ли способ отменить AFHTTPRequestOperation? Я использую его для загрузки PLIST. Поэтому у меня была кнопка, чтобы отменить загрузку или задачу. Есть ли способ?AFHTTPRequestOperation Отменить запрос
Update:
operationQueue = [NSOperationQueue new];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:myURL] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30.0];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFPropertyListResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id propertyList) {
NSLog(@"DONE");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@", error);
}
];
[operationQueue addOperation:operation];
Так я поставил "операцию" к "operationQueue" и может остановить работу с:
[operationQueue cancelAllOperations];
Это только одна операция в очереди. Есть ли способ прекратить операцию явным, если их несколько? Я предполагаю, что следующая ошибка в консоли - это нормально, если очередь отменяется?
Ошибка домена = NSURLErrorDomain Code = -999 «Операция не может быть завершена
Как это можно назвать другим (void), потому что операция известна только в этой функции, где вызывается соединение. – halloway4b
У вас есть несколько вариантов. Например, вы можете сохранить 'operation' как слабый @property, или вы можете добавить его в NSOperationQueue вместо того, чтобы называть его« start », а затем найти его позже из той же очереди. Вот хороший обзор NSOperation: http://nshipster.com/nsoperation/ –
Спасибо за подсказку с NSOperation. Обновил мой код выше. Я думаю, что если операция отменена, ошибка в журнале консоли нормальная? – halloway4b