にNSDataのinitWithContentsOfURLをキャンセルNSOperationにキャンセルメッセージが送信されると、NSOperationを継続するか、完全に停止します。 NSOperationのキャンセル操作キャンセルは、操作を停止する必要があることを通知するだけですが、操作コードを強制的に停止することはありません。は、私は現在、キーパス「isCancelled」のためのオブザーバーを持ってNSOperationに次のコードを持ってNSOperation
1
A
答えて
7
キャンセルすることはできません。
負荷を途中までキャンセルする場合は、NSURLConnection
を非同期モードで動作させてください。セットアップはもう少しですが、ダウンロードプロセスのどの時点でも取り消すことができます。
また、私は、単一のメソッド呼び出し;-)
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[[RequestQueue mainQueue] addRequest:request completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (data && error == nil)
{
//do something with your downloaded data
}
}];
//to cancel the download at any time, just say
[[RequestQueue mainQueue] cancelRequest:request];
簡単で非同期NSURLConnection
とそのデリゲートをラップと書いthis handy classを使用することができます!
</shamelessSelfPromotion>
上記の要求がすでに非同期であり、かつクラスは、すでに複数の要求のキューイングを管理するので、あなたはNSOperationQueue
でラップ(とすべきでない)する必要はありません。
関連する問題
- 1. NSNotificationCenterつのポストは、私は次のコードを持っているオブザーバーは二回
- 2. Javaは私がプリミティブラッパークラスを持って、次のコード持ってカッコ
- 3. は、私は現在、次の行を持っている1
- 4. 私は次のコードを持ってクリック
- 5. PHPセッション、現在のオブジェクトは、私は次のコードを持っている_SESSION
- 6. WPFは、私は現在、次のコードを持ってスライダーがScrollViewerのサイズ
- 7. 現在、私はこのコードを持っているHashSetの
- 8. は、私は次のPHPコードを持って戻ってMySQLの
- 9. 私は現在の1の子ページを取得するために、次のコードを持っている
- 10. 私はLaravelによって返され、次のコードを持って、次のコード
- 11. は、私が現在持っている私のC#コード
- 12. ハスケル - 私は現在、このコードを持ってStdStream
- 13. 私は現在、このコードを持っているJAVA
- 14. 現在、私はこのコードを持っているPHP
- 15. は、私は私のmailmanager.csに次のコードを持ってmailmessage.replyto
- 16. Angular2コードは、私は次のコードを持っているインラインテンプレートエラーに
- 17. NSOperatioQueueによるNSOperation保持
- 18. エクセルVBAは、現在、私は、単一のボタンを持つフォームと、次のコードを持っているAcroPDFプログラム
- 19. ルータは、私はルーターの設定のための次のコードを持って
- 20. コードは、私は次のコードを持っている別の1
- 21. 「セッションは、」私はセッションを使用していますが、私はラインでのエラーを持って、次のコードを、持っている現在のコンテキストで
- 22. 事業部は、私は、次のコードを持っていた
- 23. たDateFormatterは、私は次のコードを持っているデバイス
- 24. jQueryの - 私は現在、私のページで次のスクリプト持って私のDataTable
- 25. は、私は私のコントローラで次のコードを持って.to_i
- 26. WPF:私はパンダのために、次のコードを持っているラベル
- 27. NSOperationから次のNSOperationにデータを渡す
- 28. は、私は現在、次のような問題を持っているJavaの
- 29. は、私は現在、次の表の定義を持っているCSSスタイル
- 30. 春ブートプロパティは、私は現在、3つのプロパティファイル持って外在
これは理にかなっていますが、ダウンロードが完了したら成功ブロック内から別のXML操作を開始することを止めるものはありません。私はちょうど別のスレッドの中からスレッドを生成することは単なる資源の浪費であるため、NSOperatiomの中で要求自体を行うべきではないということを意味しました。 mainQueue共有インスタンスはスレッドセーフではないため、できるだけ必要な場合は、ログとしてNSOperationごとに新しいRequestQueueインスタンスを作成します。 –
ありがとうございました!!!!あなたのコードは本当に私を助けました:私はTIFFのサイズが約500MB(正直)で、今私は間違って起動した負荷をキャンセルできます!ブリリアント。 – Todd