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

prepare(forReadingItemsAt:options:writingItemsAt:options:error:byAccessor:)

Prepare to read or write from multiple files in a single batch operation. 複数のファイルからある単一のバッチ演算で読み出しまたは書き込みを準備します。

Declaration 宣言

func prepare(forReadingItemsAt readingURLs: [URL], 
     options readingOptions: NSFileCoordinator.ReadingOptions = [], 
writingItemsAt writingURLs: [URL], 
     options writingOptions: NSFileCoordinator.WritingOptions = [], 
       error outError: NSErrorPointer, 
  byAccessor batchAccessor: (@escaping () -> Void) -> Void)

Parameters パラメータ

readingURLs

An array of NSURL objects identifying the items you want to read. あなたが読み出すことを望む項目を識別するNSURLオブジェクトそれらからなるある配列。

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:)メソッドが、あなたのブロック実行の前に呼び出されます。

writingURLs

An array of NSURL objects identifying the items you want to write. あなたが書き込むことを望む項目を識別するNSURLオブジェクトそれらからなるある配列。

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 writer parameter is not executed. If you cancel this operation before the batchAccessor block is executed, this parameter contains an error object on output. 入力において、エラーオブジェクトに対するポインタへのポインタ。この演算に対して準備している間にファイルプレゼンタがエラーに出くわすならば、そのエラーはこのパラメータにおいて返されます、そしてwriterパラメータの中のブロックは実行されません。あなたがこの演算をbatchAccessorブロックが実行される前にキャンセルするならば、このパラメータはエラーオブジェクトを出力で含みます。

batchAccessor

A Block object containing additional calls to methods of this class. このクラスのメソッドへの追加の呼び出しを含んでいるBlockオブジェクト

The block takes the following parameter: ブロックは、以下のパラメータをとります。

completionHandler

A completion handler block. The batch accessor must call the completion handler when it has finished its read and write calls. 完了ハンドラブロック。バッチアクセッサは、それがそれの読み出しおよび書き込み呼び出しをし終える時に、完了ハンドラを呼び出さなければなりません。

Discussion 議論

Use this method to prepare the file coordinator for multiple read and write operations. Because file coordination requires interprocess communication, it is much more efficient to batch changes to large numbers of files and directories than to change each item individually. The file coordinator uses the values in the readingURLs and writingURLs parameters, together with reading and writing options, to prepare any relevant file presenters for the upcoming operations. Specifically, it uses these parameters in the same way as the coordinate(readingItemAt:options:error:byAccessor:) and coordinate(writingItemAt:options:error:byAccessor:) methods to determine which file presenter methods to call. このメソッドを使って、ファイルコーディネータを複数の読み込みおよび書き出し演算に用意してください。ファイルコーディネータがプロセス間通信を必要とすることから、バッチが多くのファイルおよびディレクトリを変更する方が、各項目を個々に変更するよりも、もっとずっと効率的です。ファイルコーディネータは、readingURLsおよびwritingURLsパラメータの中の値を、読み出しおよび書き込みオプションと一緒に使って、あらゆる関連するファイルプレゼンタを来るべき演算のために用意します。とりわけ、それはこれらパラメータをcoordinate(readingItemAt:options:error:byAccessor:)およびcoordinate(writingItemAt:options:error:byAccessor:)メソッドと同じ方法で使用して、どのファイルプレゼンタメソッドを呼び出すか決定します。

This method executes synchronously, blocking the current thread until the batchAccessor block finishes executing. The block you provide for the batchAccessor parameter does not perform the actual operations itself. Instead, you must call the individual coordinated read and write methods from inside the batchAccessor block. You must then call the completion handler after all the coordinated reads and writes have completed. You can call the completion handler from any thread. このメソッドは同期的に実行します、現在のスレッドをbatchAccessorブロックが実行を終えるまで遮断します。あなたがbatchAccessorパラメータに提供するブロックは、実際の演算それ自身を実行しません。代わりに、あなたは個々の協調読み出しおよび書き込みをbatchAccessorブロックの内側から呼び出さなければなりません。あなたは、それから完了ハンドラを全ての協調読み出しおよび書き込みが完了してしまった後に呼び出さなければなりません。あなたは、完了ハンドラをどのスレッドからでも呼び出すことができます。

Don’t simply pass this method all the URLs that are passed into the nested coordinate methods. Instead pass only the top-level files and directories involved in the operation. This method triggers messages to the file presenters of those items and to the file presenters of any items contained by those items. 単純にこのメソッドを、入れ子にされた協調メソッドに渡される全てのURLに渡さないでください。代わりに演算に関わるトップレベルのファイルおよびディレクトリにだけ渡してください。このメソッドは、それら項目のファイルプレゼンタへのそしてそれら項目によって含まれるあらゆる項目のファイルプレゼンタへのメッセージを引き起こします。

In most cases, passing the same reading and writing options to both this method and the contained coordination operations is redundant. For example, it is often appropriate to pass withoutChanges to nested read operations. This method has already triggered a call to savePresentedItemChanges(completionHandler:). The individual read operations do not need to trigger additional calls. ほとんどの場合には、同じ読み出しおよび書き込みオプションを、このメソッドと含まれる協調演算の両方に渡すことは、冗長です。例えば、withoutChangesを入れ子にされた読み出し演算それらに渡すことは大抵は適切です。このメソッドは、既にsavePresentedItemChanges(completionHandler:)への呼び出しを引き起こしています。個々の読み出し演算は、追加の呼び出しを引き起こす必要はありません。

See Also 参照

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

Related Documentation 関連文書