Operation
開発者が実行するタスクのロジックの実装に集中できるよう、ベースの実装にはタスクを安全に実行するためのロジックがすでに含まれている。
start() メソッドを呼び出して直接実行することもできるが、準備前の Operation を実行すると例外が発行されてしまうため、事前に isReady でチェックしておく必要がある。 依存
addDependency, removeDependency で依存を追加削除できる
全ての依存が終了して初めて実行準備が完了した状態になる
NSOperation でサポートされる依存では、キャンセルや異常終了も通常終了と同一とみなされる
エラーをトラックしたければ追加の実装が必要
Operation は KVC, KVO 可能なクラスである。サブクラスを実装する場合、同様に KVC, KVO 可能であるように実装しなくてはならない。新しくプロパティを追加した場合でも、それらも同様に KVO, KVC 可能であるように実装することが推奨されている。KVO を利用する場合、各 Operation は大抵メインスレッド以外で実行されるため、UI コンポーネントと直接繋いではならない。