Discussion
議論
When invoking these methods, declare a __block
variable before the accessor block and initialize it to a value that signals failure, and then inside the accessor block set it to a value that indicates success. If the coordinated operation fails, then the accessor block never runs. The sentinel variable still holds a value that indicates failure, and the NSError
out parameter contains a reference that describes the error.
これらのメソッドを発動する場合、__block
変数をアクセッサブロックの前に宣言してそれを失敗を合図するある値に初期化してください、それからアクセッサブロックの内部でそれを成功を指し示すある値に設定してください。協調演算が失敗するならば、そのときアクセッサブロックは決して実行されません。この見張りの変数は、依然として失敗を指し示すある値を保持します、そしてNSError
outパラメータは、エラーを記述するある参照を含みます。
You use this method to perform write-related operations on a file or directory in a coordinated manner. This method executes synchronously, blocking the current thread until the writer
block finishes executing. Before executing the block, though, the file coordinator waits until other relevant file presenter objects finish in-progress actions. Similarly, your write operation may cause pending actions for other file presenters to wait until your operations are complete. Whether or not the file coordinator waits depends on whether the item being written is a file or directory and also depends on other related operations.
あなたはこのメソッドを使って、書き込み関連演算をファイルまたはディレクトリ上で協調的流儀で実行します。このメソッドは同期的に実行します、現在のスレッドをwriter
ブロックが実行をやり終えるまで遮断します。ブロックの実行前に、ファイルコーディネータは、他の関連ファイルプレゼンタオブジェクトが現在進行中のアクションを終えるまで待機します。同様に、あなたの書き込み演算は、他のファイルプレゼンタにとっての懸案の動作があなたの演算が完了するまで待機することを引き起こすかもしれません。ファイルコーディタが待機するかどうかは、書き込まれている項目が、ファイルかディレクトリかに依存します、そしてまた他の関連演算に依存します。
This method calls the relinquishPresentedItem(toWriter:)
method of any relevant file presenters. This method is called for file presenters in the current process and in other processes. Depending on the options you specify, other methods of the file presenters may also be called. When writing a file package directory, file presenter objects that are currently reading or writing the contents of that file package also receive these notifications. All of the called methods must return successfully before the file coordinator executes your block. If multiple file presenters are operating on the item, the order in which those presenters are notified is undefined.
このメソッドは、あらゆる関連するファイルプレゼンタそれらのrelinquishPresentedItem(toWriter:)
メソッドを呼び出します。このメソッドは、現在のプロセスにおいてそして他のプロセスにおいてそれらファイルプレゼンタを呼び出します。あなたが指定するオプションに依存して、それらファイルプレゼンタの他のメソッドもまた呼び出されるかもしれません。ファイルパッケージディレクトリを書き込んでいる場合、現在そのファイルパッケージの内容を読みだしまたは書き込みしているファイルプレゼンタオブジェクトもまた、これらの通知を受け取ります。呼び出されたメソッドの全ては、ファイルコーディネータがあなたのブロックを実行する前に、うまく返らなければなりません。複数のファイルプレゼンタがその項目上で演算を行っているならば、それらプレゼンタが通知を受ける順番は未定義です。
With one exception, do not nest calls to file coordinator methods inside the block you pass to this method. You may call the coordinate(readingItemAt:options:error:byAccessor:)
method to read the file if you discover through modification-date checking that the contents of the file have changed. However, if you call this method from inside your block, the file coordinator object throws an exception.
1つ例外として、ファイルコーディネータメソッドへの呼び出しを、あなたがこのメソッドに渡すブロック内で入れ子にしないでください。あなたは、coordinate(readingItemAt:options:error:byAccessor:)
メソッドを呼び出してファイルを読み出すかもしれません、あなたが修正日の検査を通してファイルの内容が変更されたことを発見するならば。しかしながら、あなたがこのメソッドをあなたのブロック内から呼び出すならば、ファイルコーディネータオブジェクトは例外をスローします。