Instance Method インスタンスメソッド

coordinate(readingItemAt:options:writingItemAt:options:error:byAccessor:)

Initiates a read operation that contains a follow-up write operation. 読み出し演算を開始します、それは追記的書き込み演算を含みます。

Declaration 宣言

func coordinate(readingItemAt readingURL: URL, 
        options readingOptions: NSFileCoordinator.ReadingOptions = [], 
  writingItemAt writingURL: URL, 
        options writingOptions: NSFileCoordinator.WritingOptions = [], 
          error outError: NSErrorPointer, 
     byAccessor readerWriter: (URL, URL) -> Void)

Parameters パラメータ

readingURL

A URL identifying the file or directory to read. If other objects or processes are acting on the item at the URL, the actual URL passed to the block in the readerWriter parameter may be different than the one in this parameter. 読み出すファイルまたはディレクトリを識別するURL。他のオブジェクトまたはプロセスがそのURLでの項目上で行動しているならば、readerWriterパラメータのブロックに渡される実際のURLは、このパラメータのものと比べて異なるかもしれません。

readingOptions

One of the reading options described in NSFileCoordinator.ReadingOptions. If you pass 0 for this parameter, the savePresentedItemChanges(completionHandler:) method of relevant file presenters is called before your block executes. NSFileCoordinator.ReadingOptionsにおいて記述される読み出しオプションの1つ。あなたが0をこのパラメータに渡すならば、関連のあるファイルプレゼンタのsavePresentedItemChanges(completionHandler:)メソッドが、あなたのブロック実行の前に呼び出されます。

writingURL

A URL identifying the file or directory to write. If other objects or processes are acting on the item at the URL, the actual URL passed to the block in the readerWriter parameter may be different than the one in this parameter. 書き込みをするファイルまたはディレクトリを識別するURL。他のオブジェクトまたはプロセスがそのURLでの項目上で行動しているならば、readerWriterパラメータのブロックに渡される実際のURLは、このパラメータのものと比べて異なるかもしれません。

writingOptions

One of the writing options described in NSFileCoordinator.WritingOptions. The options you specify partially determine how file presenters are notified and how this file coordinator object waits to execute your block. NSFileCoordinator.WritingOptionsで記述される書き込みオプションの1つ。どのようにファイルプレゼンタが通知されるかそしてどのようにこのファイルコーディネータオブジェクトがあなたのブロックの実行に対して待機するかを、あなたがある程度決定するオプション。

outError

On input, a pointer to a pointer for an error object. If a file presenter encounters an error while preparing for this operation, that error is returned in this parameter and the block in the readerWriter parameter is not executed. If you cancel this operation before the readerWriter block is executed, this parameter contains an error object on output. 入力において、エラーオブジェクトに対するポインタへのポインタ。この演算に対して準備している間にファイルプレゼンタがエラーに出くわすならば、そのエラーはこのパラメータにおいて返されます、そしてreaderWriterパラメータの中のブロックは実行されません。あなたがこの演算をreaderWriterブロックが実行される前にキャンセルするならば、このパラメータは出力においてエラーオブジェクトを含みます。

readerWriter

A Block object containing the read and write operations you want to perform in a coordinated manner. This block receives NSURL objects containing the URLs of the items to read and write and returns no value. Always use the URLs passed into the block instead of the values in the readingURL and writingURL parameters. あるBlockオブジェクト、あなたがある協調流儀で実行することを望む読み出しおよび書き込み演算を含んでいます。このブロックは、読み出すそして書き込む項目のURLを含んでいるNSURLオブジェクトを受け取ります、そして値を返しません。常にブロックへと渡されるURLを使ってください、readingURLおよびwritingURLパラメータの中の値ではなく。

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:)のように。

See Also 参照

Coordinating File Operations Synchronously ファイル操作を同期的に協調させる(コーディネートする)