質問

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

役に立ちましたか?

解決

次のようなものを使用して別の操作を作成します。

NSOperationQueue* queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation: [[[NSInvocationOperation alloc] initWithTarget: self 
      selector: @selector(_backgroundWorker) 
      object: nil] autorelease]];

このようにして、_backgroundworkerはメインUIスレッドを停止せずに実行されます。

1つのキャンセルボタンが押され、内部変数を設定し、_backgroundworker内でその値を確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top