1

私はNSOperationブロックで実行されている複雑な計算を持っていると言います。私はそれを一時停止した。アプリを閉鎖しました。その後、アプリを再起動しました。私は最後の状態を回復し、そこから続けることができますか? このような問題の既存のソリューションはありますか、特定の目的のためにのみカスタム構築できますか?ファイルに一時停止NSOperationQueueを保存する

答えて

0

質問は少し曖昧ですので、すべてのコードを理解していなければ言い難いです。それで、私は問題に近づくかもしれません:

オプション1. NSOperationのサブクラスで、独自のアトミックKVOプロパティ "isPaused"を追加します。操作自体の中でプロパティを観察し、変更された場合はそれに応じて処理します。

オプション2.操作キュー自体を一時停止していますか?その場合は、操作内からそのプロパティを観察することを検討し、それぞれの値が変更された場合は、それぞれの操作を独立して実行できます。

オプション3.キュー内のすべての操作をキャンセルします。ビューが再び表示された場合は、新しい操作で再起動してください。

全体的には、すでに進行中の操作を一時停止するための魔法の弾丸はありません。あなた自身のソリューションを焼く必要があります。しかし、ダメージはあまりにも悪くはありません。

キューの中断と再開操作の実行を一時的に停止する場合は、setSuspended:メソッドを使用して対応する操作キューを中断できます。

キューをサスペンドしても、実行中の操作がタスクの途中で一時停止することはありません。新しいオペレーションの実行がスケジュールされないようにするだけです。ユーザが最終的にその作業を再開したいと考えているため、進行中の作業を一時停止するというユーザの要求に応じて、キューを一時停止することがあります。

詳細については、このリンクを参照してください。apple docs:http://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationObjects/OperationObjects.html

関連する問題