Tôi thực sự gặp vấn đề khi tôi muốn dừng tất cả các yêu cầu hiện tại trong một công cụ đồng bộ được xây dựng với AFNetworking.AFNetworking + cancelAllRequests
Tôi có 5 URL khác nhau để truy vấn. Mỗi truy vấn được khởi chạy nếu trước đó được thực hiện đúng.
Điều này hoạt động rất tốt.
Tôi muốn ngừng quá trình đồng bộ hóa bất cứ lúc nào. Vì vậy, mã của tôi để làm điều đó là:
- (void)cancelAllRequests
{
NSLog(@"CancelAllRequests");
[[HTTPClient sharedClient] cancelAllHTTPOperationsWithMethod:@"GET" path:@"ws/webapp/services/pull"];
[[HTTPClient sharedClient] cancelAllHTTPOperationsWithMethod:@"GET" path:@"ws/webapp/services/pull_items"];
[[HTTPClient sharedClient] cancelAllHTTPOperationsWithMethod:@"GET" path:@"ws/webapp/services/pull_image"];
[[HTTPClient sharedClient] cancelAllHTTPOperationsWithMethod:@"POST" path:@"ws/webapp/services/push_item"];
[[[HTTPClient sharedClient] operationQueue] cancelAllOperations];
}
Nhưng mã này dường như không làm gì cả. Khi tôi muốn hủy bỏ, tôi thấy tất cả các hoạt động lô làm việc trong nhật ký của tôi sau khi phương thức được gọi.
Tôi đã bỏ lỡ điều gì? Nếu tôi hủy các yêu cầu, điều này không ngăn tất cả các hoạt động đang hoạt động xây dựng với các yêu cầu này?
HTTPClient? Liệu nó thuộc về AFNetworking? –
Tôi nghĩ ý anh ấy là: AFHTTPClient * httpClient = [[AFHTTPClient alloc] initWithBaseURL: url]; [[httpClient operationQueue] cancelAllOperations]; – Flaviu