私はNSOperationQueueのaddOperationWithBlockを使用しています。ブロック内から操作をキャンセルする必要があるかどうかを確認するにはどうすればよいですか?またはNSOperationのプロパティ/メソッドにアクセスできますか?addOperationWithBlockで作成した操作をキャンセルするにはどうすればよいですか?
[myOperationQueue addOperationWithBlock: ^{
while (/* long running loop */)
{
// how to determine here if I need to cancel?
// for that matter, access any NSOperation properties/methods?
}
}];
NSBlockOperationを使用するより良い方法はありますか?
これはほぼ正確に私が望むものです。その特定のブロックでのみ動作します。私の場合、私のブロックは別のブロックを呼び、その時点で私はもう「操作」へのアクセス権を持っていないと思います。私は、NSOperationをサブライズすれば、私のケースがうまくいく唯一の方法だと思います。 – roocell
私は自分のブロックを介して操作を渡すことで私のケースを解決することができました。ありがとう - 私はNSOperationのサブクラスを避けるので、私はこのアプローチが好きです。 – roocell
このソリューションは素晴らしいです。私が持っている唯一の小さな質問は、変数 'operation'に__blockタグを付ける必要がありますか?変数の値をブロック内で変更する必要がないので、私はそうは思わない。 – Jake