func main()
var completionBlock : (() -> Void)?
Availability 有効性
Technology
func start()
The default implementation of this method updates the execution state of the operation and calls the receiver’s main()
method. This method also performs several checks to ensure that the operation can actually run. For example, if the receiver was cancelled or is already finished, this method simply returns without calling main()
. (In OS X v10.5, this method throws an exception if the operation is already finished.) If the operation is currently executing or is not ready to execute, this method throws an NSInvalid
exception. In OS X v10.5, this method catches and ignores any exceptions thrown by your main()
method automatically. In macOS 10.6 and later, exceptions are allowed to propagate beyond this method. You should never allow exceptions to propagate out of your main()
method.
このメソッドの省略時の実装は、オペレーションの遂行状態を更新します、そしてレシーバのもつmain()
メソッドを呼び出します。このメソッドはまた、幾つかの検査を実行してそのオペレーションが実際に実行できることを確かなものにします。例えば、レシーバがキャンセルされたまたはすでに終了されたならば、このメソッドはmain()
を呼び出すことなく単に復帰します。(OS X 10.5では、このメソッドはオペレーションが既に終了したならば例外をスローします。)オペレーションが現在遂行中であるまたは遂行がまだならば、このメソッドはNSInvalid
例外をスローします。OS X 10.5では、このメソッドはmain()
メソッドによってスローされるあらゆる例外を自動的にキャッチして無視します。macOS 10.6以降では、遂行はこのメソッドを越えて伝わることを許可されます。あなたは、決して例外にあなたのmain()
メソッドの外に伝わることを許可すべきではありません。
Note 注意
An operation is not considered ready to execute if it is still dependent on other operations that have not yet finished. あるオペレーションは遂行する準備ができたとみなされません、それがまだ終了していない他のオペレーションに依然として依存しているならば。
If you are implementing a concurrent operation, you must override this method and use it to initiate your operation. Your custom implementation must not call super
at any time. In addition to configuring the execution environment for your task, your implementation of this method must also track the state of the operation and provide appropriate state transitions. When the operation executes and subsequently finishes its work, it should generate KVO notifications for the is
and is
key paths respectively. For more information about manually generating KVO notifications, see Key-Value Observing Programming Guide.
あなたが並行オペレーションを実装しているならば、あなたはこのメソッドをオーバーライドして、そしてそれを使ってあなたのオペレーションに着手しなければなりません。あなたのあつらえの実装は、いかなる時もsuper
を呼び出してはいけません。あなたのタスクに対する遂行環境を構成設定することに加えて、このメソッドのあなたの実装はまた、オペレーションの状態を追跡して、そして適切な状態推移を提供しなければなりません。オペレーションが遂行するそしてその後それの仕事を終了する場合、それはKVO通知をis
およびis
キーパスに対してそれぞれ生成すべきです。手動でKVO通知を生成する事についてのさらなる情報として、Key-Value Observing Programming Guideを見てください。
You can call this method explicitly if you want to execute your operations manually. However, it is a programmer error to call this method on an operation object that is already in an operation queue or to queue the operation after calling this method. Once you add an operation object to a queue, the queue assumes all responsibility for it. あなたはこのメソッドを明示的に呼び出すことが可能です、あなたがあなたのオペレーションを手動で遂行したいならば。しかしながら、このメソッドを既にオペレーションキューの中にあるオペレーションオブジェクト上で呼び出すこと、またはこのメソッドの呼び出し後にオペレーションをキューに入れることは、プログラマの過失です。一旦あなたがあるオペレーションオブジェクトをキューに加えるならば、キューはそれに対する全ての責任を帯びます。
func main()
var completionBlock : (() -> Void)?
var isReady : Bool
var dependencies: [Operation]