1

ユーザーが画面上のボタンをタップすると開始するアクションがあります(例:「インポート」)。同時に、UIToolbarが画面の下部に表示され、ユーザーはこのアクションをキャンセルすることができます。キャンセルメッセージを最初の関数に正しく送信するにはどうすればよいですか?ユーザーが「キャンセル」を押した場合、「インポート」を続行したくありません。理論的には、別のスレッドとして設定することもできますが(その後、強制終了できます)、それ自体をクリーンアップできるように、これを行う適切な方法がわかりません。ユーザーがすでに開始している機能を「殺す」ことができるようにするための他の戦略は何ですか?

4

1 に答える 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 に答える