cancelAllOperations()
không hoạt động trên mainQueue (phương pháp cancel()
không được gọi trên đối tượng NSOperation
). Tui bỏ lỡ điều gì vậy? Tôi phải lặp qua tất cả các hoạt động và gọi phương thức cancel()
để làm cho nó hoạt động.cancelAllOperations không hoạt động cho [NSOperationQueue mainQueue]
9
A
Trả lời
5
Tôi cũng có thể xác nhận rằng cancelAllOperations không hoạt động trên [NSOperationQueue mainQueue] (ít nhất là trên Trình mô phỏng iOS 5.0 của tôi). Có thể được thiết kế cố ý như thế vì nó là một cá thể được chia sẻ.
workaround đơn giản của tôi là chỉ để phân lớp NSOperation hoặc NSBlockOperation mà không trọng bất cứ điều gì và sau đó làm một cái gì đó như thế này:
-(void)cancelMyOperationsInMainQueue {
for (NSOperation* o in [[NSOperationQueue mainQueue] operations]) {
if ([o isKindOfClass:[MyOperation class]]) {
[o cancel];
}
}
}
0
Ừ cũng có thể khẳng định nó không gọi hủy bỏ phương pháp trên các hoạt động, nó chỉ đặt isCancelled = YES
Giải pháp của tôi: [[[NSOperationQueue mainQueue] operations] makeObjectsPerformSelector:@selector(cancel)];
Các vấn đề liên quan
- 1. NSOperationQueue mainQueue vs performSelectorOnMainThread?
- 2. NSOperationQueue không hoạt động trong IOS5
- 3. Đâm với ASIHTTPRequest và NSOperationQueue khi hủy hoạt động
- 4. NSOperationQueue waitUntilAllOperationsAreFinished không hoạt động khi đang ở chế độ nền
- 5. Làm thế nào nhẹ là NSOperationQueue trên Snow Leopard?
- 6. NSOperationQueue chỉ định
- 7. NSOperationQueue vs GCD
- 8. dispatch_after tương đương trong NSOperationQueue
- 9. Giá trị mặc định của maxConcurrentOperationCount cho NSOperationQueue
- 10. cách làm cho JDialog không hoạt động
- 11. BroadcastReceiver cho ACTION_MEDIA_BUTTON không hoạt động
- 12. ProgressBar.setProgressDrawable không hoạt động cho Android 2.3
- 13. IValueConverter không hoạt động cho SolidColorBrush
- 14. @Async không hoạt động cho tôi
- 15. addKeyListener() không hoạt động cho JPanel
- 16. xmlHttp.getResponseHeader + Không hoạt động cho CORS
- 17. Bing Api không hoạt động cho tôi
- 18. Turbolinks cho Rails không hoạt động
- 19. WordPress .htaccess không hoạt động cho rewriterule
- 20. Rewriterule cho CodeIgniter không hoạt động
- 21. JQuery: .val() không hoạt động cho textarea
- 22. In đậm không hoạt động cho trường văn bản ... nhưng hoạt động cho nhãn
- 23. NSOperationQueue không sử dụng lại chuỗi trên iPhone
- 24. Tại sao NSOperationQueue trên iPhone OS 3.1 giữ lại các hoạt động bị hủy bỏ (và phát hành) lâu dài?
- 25. Chia sẻ NSOperationQueue trên Xem bộ điều khiển?
- 26. Hoạt ảnh hiển thị CSS Hoạt động không hoạt động
- 27. NSThread so với NSOperationQueue so với ??? trên iPhone
- 28. Nhận dispatch_queue_t cơ bản từ NSOperationQueue
- 29. Làm cách nào để chặn NSOperation cho đến khi NSOperationQueue kết thúc?
- 30. Jquery và twitter bootstrap làm cho tab hoạt động không hoạt động
Chắc chắn tôi đã thấy '-cancelAllOperations' hoạt động tốt. Có thể bạn cần cung cấp thêm ngữ cảnh. –
không chỉ cho tôi theo cách được mô tả, hôm nay – Bryan
Tôi biết đây là một câu hỏi cũ, nhưng bạn nói rằng bạn đang sử dụng 'mainQueue' cho' NSURLConnection'. Bạn có thể muốn sử dụng hàng đợi tùy chỉnh cho các hoạt động dựa trên 'NSURLConnection', không phải' mainQueue', dù sao (bạn có thể sử dụng 'maxConcurrentOperationCount' để sử dụng đồng thời trong khi kiểm soát mức độ đồng thời). Nếu sử dụng 'NSURLConnection' dựa trên ủy nhiệm, bạn vẫn có thể lên lịch kết nối trên hàng đợi chính (hoặc tạo ra' NSThread' của riêng bạn với runloop riêng của nó, giống như AFNetworking). Nhưng bạn có thể muốn sử dụng hàng đợi tùy chỉnh cho các hoạt động, bản thân họ. – Rob