ユーザーが画面上のボタンをタップすると開始するアクションがあります(例:「インポート」)。同時に、UIToolbarが画面の下部に表示され、ユーザーはこのアクションをキャンセルすることができます。キャンセルメッセージを最初の関数に正しく送信するにはどうすればよいですか?ユーザーが「キャンセル」を押した場合、「インポート」を続行したくありません。理論的には、別のスレッドとして設定することもできますが(その後、強制終了できます)、それ自体をクリーンアップできるように、これを行う適切な方法がわかりません。ユーザーがすでに開始している機能を「殺す」ことができるようにするための他の戦略は何ですか?
1 に答える
1
次のようなものを使用して、別の操作を作成します。
NSOperationQueue* queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation: [[[NSInvocationOperation alloc] initWithTarget: self
selector: @selector(_backgroundWorker)
object: nil] autorelease]];
このようにして、メインUIスレッドを停止せずに_backgroundWorkerが実行されます。
1つのキャンセルボタンが押され、内部変数を設定し、_backgroundWorker内でその値を確認します。
于 2010-08-16T15:12:55.173 に答える