Ağ iletişimi işlevlerimi AFNetworking
'dan AFNetworking v2
'a geçirdim ve AFHttpClient
yerine IOS6'yı desteklemek için AFHTTPRequestOperationManager
kullanıyorum.AFNetworking 2: AFHTTPRequestOperationManager isteği nasıl iptal edilir?
Sorunum AFHttpClient
orada iken işlevselliği AFHTTPRequestOperationManager
böyle bir bariz bir yöntem yoktur,
- (void)cancelAllHTTPOperationsWithMethod:(NSString *)method path:(NSString *)path;
yöntemi kullanarak bekleyen bir isteği iptal etmek olmasıdır. Ben bir istek kodu yaptığınızda şimdi AFHTTPRequestOperationManager
sınıflara ve bir Ivar
AFHTTPRequestOperation *_currentRequest;
ilan edilir kadar ne yaptık
- (void)GetSomething:(NSInteger)ID success:(void (^)(MyResponse *))success failure:(void (^)(NSError *))failure
{
_currentRequest = [self GET:@"api/something" parameters:@{@"ID": [NSNumber numberWithInteger:ID]} success:^(AFHTTPRequestOperation *operation, id responseObject) {
MyResponse *response = [MyResponse responseFromDictionary:responseObject];
success(response);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(error);
}];
}
gibi bir şey ve ben bir
var- (void)cancelCurrentRequest;
tüm bunların yaptığı
yöntemleri- (void)cancelCurrentRequest
{
if(_currentRequest) {
[_currentRequest cancel]; _currentRequest = nil;
}
}
Şimdi, bunun iyi bir uygulama olduğunu düşünmüyorum ve yöntem çağrıldığında (NSURLErrorDomain error -999.)
olsun, bu yüzden bu işlemi doğru şekilde yapmak için bazı önerilere ihtiyacım var.
Önceden teşekkür ederiz. İsteği gönderdiğinizde çünkü
Thx. Bunu fark ettim, ancak belirli bir GET/POST isteğini iptal etmek isterseniz ne olur? – ozzotto
Eğer cancelAllHTTPOperationsWithMethod: yolunun uygulanmasına bakarsanız, nasıl yapacağınızı öğreneceksiniz. Yöntem ve yolla eşleşen ve onları iptal edenleri bulmak için, yalnızca OperationQueue'daki tüm işlemleri yineleyin. Onları v2'de kaldırmanın nedeni, belirli bir işlemi iptal etmenin gereksiz olduğunu düşünüyorlar mı? –
Yaptığım şey bu. AFHTTPRequestOperationManager alt sınıfımdaki cancelAllHTTPOperationsWithMethod: yolunun bir uygulaması. Thx dostum. – ozzotto