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 a read operation that might also contain a write operation that needs to be coordinated. This method executes synchronously, blocking the current thread until the readerWriter
block finishes executing. When performing the write operation, you may call the coordinate(writingItemAt:options:error:byAccessor:)
method from your readerWriter
block. This method does the canonical lock ordering that is required to prevent a potential deadlock of the file operations.
あなたはこのメソッドを使って、ある読み出し演算を実行します、それはまた協調させる必要のある書き込み演算も含むかもしれません。このメソッドは同期的に実行します、現在のスレッドをreaderWriter
ブロックが実行を終えるまでブロックします。書き込み演算を実行している場合、あなたは、coordinate(writingItemAt:options:error:byAccessor:)
メソッドをあなたのreaderWriter
ブロックから呼び出すかもしれません。このメソッドは、正準ロック順序を行います、それはファイル演算それらの潜在的な膠着を防ぐために必要とされるものです。
This method makes the same calls to file presenters, and has the same general wait behavior, as the coordinate(readingItemAt:options:error:byAccessor:)
method.
このメソッドは、ファイルプレゼンタに同じ呼び出しをします、そして同じ一般的待機挙動を持ちます、coordinate(readingItemAt:options:error:byAccessor:)
のように。