cancelAllOperations()
non funziona su mainQueue (il metodo cancel()
non viene chiamato sull'oggetto NSOperation
). Mi sto perdendo qualcosa? Devo ripetere tutte le operazioni e chiamare il metodo cancel()
per farlo funzionare.cancelAllOperations non funziona per [NSOperationQueue mainQueue]
9
A
risposta
5
Posso anche confermare che cancelAllOperations non funziona su [NSOperationQueue mainQueue] (almeno sul mio iOS 5.0 Simulator). Potrebbe essere intenzionalmente progettato in questo modo poiché è un'istanza condivisa.
mio semplice soluzione è solo alla sottoclasse NSOperation o NSBlockOperation senza sostituire nulla e poi fare qualcosa di simile:
-(void)cancelMyOperationsInMainQueue {
for (NSOperation* o in [[NSOperationQueue mainQueue] operations]) {
if ([o isKindOfClass:[MyOperation class]]) {
[o cancel];
}
}
}
0
Si può anche confermare non chiama annullare il metodo sulle operazioni, semplicemente imposta isCancelled = YES
La mia soluzione: [[[NSOperationQueue mainQueue] operations] makeObjectsPerformSelector:@selector(cancel)];
Problemi correlati
- 1. [NSOperazione cancelAllOperations]; non ferma l'operazione
- 2. NSOperationQueue non funziona in IOS5
- 3. Quanto è leggero NSOperationQueue su Snow Leopard?
- 4. La chiamata - (void) cancelAllOperations su NSoperationQueue non sta impostando la proprietà isCancelled di NSOperation che è presente all'interno della coda
- 5. NsoperationQueue Annullare tutte le operazioni non è cancellato fino a quando non termina l'operazione
- 6. NSOperationQueue e simultaneo vs non simultaneo
- 7. Imposta priorità su NSOperationQueue
- 8. Coda FIFO seriale NSOperationQueue
- 9. Equivalente C++ per NSOperation e NSOperationQueue
- 10. Valore predefinito di maxConcurrentOperationCount per NSOperationQueue
- 11. NSOperationQueue vs GCD
- 12. dispatch_after equivalent in NSOperationQueue
- 13. NSBlockOperation, NSOperationQueue e Blocks
- 14. NSOperation e NSOperationQueue callback
- 15. Condividere NSOperationQueue su View Controller?
- 16. usa NSOperationQueue come stack LIFO?
- 17. È pericoloso impostare un NSOperationQueue autoreleased?
- 18. NSThread vs. NSOperationQueue vs. ??? su iPhone
- 19. AFNetworking + NsOperationQueue - Download di migliaia di immagini
- 20. c'è un modo per aggiungere blocchi a NSOperationQueue come questo
- 21. Che cosa significa isConcurrent per NSOperation in esecuzione da NSOperationQueue?
- 22. Differenza tra Dispatch Queue e NSOperationQueue
- 23. Arresto anomalo con ASIHTTPRequest e NSOperationQueue durante l'annullamento delle operazioni
- 24. nl2br non funziona per me
- 25. .gitignore non funziona per me
- 26. onchange non funziona per firefox
- 27. Node.js: per ogni ... non funziona
- 28. \ cb non funziona per RTF
- 29. SetGravity per GridLayout non funziona
- 30. NSTextAlignment.Justified per UILabel non funziona
abbastanza sicuro che ho visto 'lavoro -cancelAllOperations' bene. Forse hai bisogno di fornire più contesto. –
fallendo per me nel modo descritto, oggi – Bryan
So che questa è una vecchia domanda, ma tu dici che stai usando 'mainQueue' per' NSURLConnection'. Probabilmente si vorrà usare una coda personalizzata per operazioni basate su 'NSURLConnection', non' mainQueue', comunque (si può usare 'maxConcurrentOperationCount' per godere della concorrenza mentre si controlla il grado di concorrenza). Se si utilizza 'NSURLConnection' basato sui delegati, è ancora possibile pianificare la connessione sulla coda principale (o creare il proprio' NSThread' con il proprio runloop, come fa AFNetworking). Ma probabilmente vorrai usare la coda personalizzata per le operazioni, loro stesse. – Rob