を使用して、いくつかのバックグラウンド ネットワーク リクエストを実装したいと考えていますNSOperationQueue
。コードのさまざまな部分によってキューに追加されるいくつかの異なる要求があり、そのうちの 1 つは他の要求よりも定期的に実行されます。
私はすでに GCD を使用してこれを実装しているため、コードのブロックがあるため、単にNSBlockOperation
メソッドblockOperationWithBlock:^{...}
を使用し、 のサブクラスを作成しないことを計画していましNSOperation
た。
この問題は、リクエスト間に依存関係を作成したいということです。キューにすでに requestA がある場合は、requestBNSBlockOperation
を作成するときに依存関係を追加します。NSBlockOperation
操作を同時に作成する場合、これは些細なことですが、どの操作がキューに既に存在するかを判断する簡単な方法が見つかりません。
NSOperationQueue
にはoperations
プロパティがあるので、操作自体のリストを取得できますが、どの操作がどれであるかを判断するにはどうすればよいでしょうか? 使用できる名前/説明プロパティが表示されません。
私が考えることができるオプションは次のとおりです。
- サブクラス化
NSOperation
してリクエスト タイプごとにカスタム オブジェクトを作成し、operations
プロパティから取得したオブジェクトに対してイントロスペクションを使用します - サブクラス
NSBlockOperation
化して説明プロパティを追加する
これを行うための他の明らかな方法がありませんか?