Class

NSFileCoordinator

An object that coordinates the reading and writing of files and directories among file presenters. ファイルプレゼンタそれらの間でファイルやディレクトリの読み出しや書き込みを調整するオブジェクト。

Declaration 宣言

class NSFileCoordinator : NSObject

Overview 概要

The NSFileCoordinator class coordinates the reading and writing of files and directories among multiple processes and objects in the same process. You use instances of this class as is to read from, write to, modify the attributes of, change the location of, or delete a file or directory, but before your code to perform those actions executes, the file coordinator lets registered file presenter objects perform any tasks that they might require to ensure their own integrity. For example, if you want to change the location of a file, other objects interested in that file need to know where you intend to move it so that they can update their references. NSFileCoordinatorクラスは、複数のプロセスおよび同じプロセス中の複数のオブジェクトの間でファイルとディレクトリの読み出しや書き込みを調整します。あなたはこのクラスのインスタンスをそのままで使用して、ファイルまたはディレクトリから読み出し、それへと書き込み、その属性を修正し、その位置を変更し、またはそれを削除します、しかしそれらのアクションを実行するあなたのコードが成し遂げる前に、ファイルコーディネータは登録されたファイルプレゼンタオブジェクトそれらに何らかのタスクを実行させます、それはそれらがそれら自身の整合性を確実にするのに必要かもしれないものです。例えば、あなたがあるファイルの位置を変更したいならば、そのファイルに関心のある他のオブジェクトそれらは、あなたがそれをどこに移動するか知る必要があります、それでそれらはそれらの参照を更新できます。

Objects that adopt the NSFilePresenter protocol must register themselves with the NSFileCoordinator class to be notified of any pending changes. They do this by calling the addFilePresenter(_:) class method. A file presenter must balance calls to addFilePresenter(_:) with a call to removeFilePresenter(_:) before being released, even in a garbage-collected application. The file presenter class maintains a list of active file presenter objects in the current application and uses that list, plus the file coordinator classes in other processes, to deliver notifications to all of the objects interested in a particular item. NSFilePresenterプロトコルを採用するオブジェクトそれらは、それら自身をNSFileCoordinatorクラスに登録することで、あらゆる差し迫る変更を通知されなければなりません。それらは、これをaddFilePresenter(_:)クラスメソッドを呼び出すことで行います。あるファイルプレゼンタは、解放される前に、addFilePresenter(_:)への呼び出しとremoveFilePresenter(_:)への呼び出しの帳尻を合わせなければなりません、ガベージコレクトされたアプリケーションにおいてさえもです。ファイルプレゼンタクラスは、現在のアプリケーションにおける現行のファイルプレゼンタオブジェクトのリストを保守します、そしてそのリスト、加えて他のプロセスにおけるファイルコーディネータクラスそれらも使って、ある特定の項目に関心をよせる全てのオブジェクトに通知を届けます。

Instances of NSFileCoordinator are meant to be used on a per-file-operation basis, where a file operation is something like opening and reading the contents of a file or moving a batch of files and directories to a new location. There is no benefit to keeping a file coordinator object past the length of the planned operation. In fact, because file coordinators retain file presenter objects, keeping one around could prevent the file presenter objects from being released in a timely manner. NSFileCoordinatorのインスタンスは、ファイル毎演算基盤で使われることを意図されます、ここであるファイル演算は、ファイルを開くそしてその内容を読み出すまたは一束のファイルおよびディレクトリを新しい場所に移動するようなことです。あるファイルコーディネータをその計画された演算の期間を過ぎて残しておく利点はありません。実際、ファイルコーディネータがファイルプレゼンタオブジェクトを保持するので、念のためそれを取っておくことは、ファイルプレゼンタオブジェクトが時宜を得た流儀で解放されるのを妨げる可能性があります。

For information about implementing a file presenter object to receive file-related notifications, see NSFilePresenter. ファイルプレゼンタオブジェクトを実装してファイル関連の通知を受け取ることについての情報として、NSFilePresenterを見てください。

File Presenters and iOS ファイルプレゼンタとiOS

If your app or extension enters the background with an active file presenter, it may be terminated by the system in order to prevent deadlock on that file. To prevent this situation, call removeFilePresenter(_:) to remove the file presenter in the applicationDidEnterBackground(_:) method or in response to a didEnterBackgroundNotification notification. Call addFilePresenter(_:) to add the file presenter again in the applicationWillEnterForeground(_:) method or in response to a willEnterForegroundNotification notification. あなたのアプリまたは拡張がある現行のファイルプレゼンタとともにバックグラウンドに入るならば、それはそのファイルに関してデッドロックを防ぐ目的でシステムによって終了されるかもしれません。この状況を防止するには、removeFilePresenter(_:)を呼び出してそのファイルプレゼンタをapplicationDidEnterBackground(_:)メソッドにおいてまたはdidEnterBackgroundNotification通知に答えて取り除いてください。addFilePresenter(_:)を呼び出すことで、再びファイルプレゼンタをapplicationWillEnterForeground(_:)メソッドにおいてまたはwillEnterForegroundNotification通知に答えて加えてください。

File Coordinators and iOS ファイルコーディネータとiOS

A coordinated read or write will automatically begin a background task when granted, similar to one created with the beginBackgroundTask(expirationHandler:) method. This helps ensure that your app or extension has sufficient time to finish the read or write operation if it’s suspended, without creating a deadlock on access to that file by other processes. If a process is suspended while waiting for a coordinated read or write to be granted, the request is canceled, and an NSError object with the code NSUserCancelledError is produced. If the background task expires, the process is terminated. 協調(コーディネートされた)読み込みまたは書き込みは、認められる場合に自動的にバックグラウンドタスクを始めます、beginBackgroundTask(expirationHandler:)メソッドで作成されたものに似て。これは、あなたのアプリまたは拡張が、それが一時停止されるならば読み出しまたは書き込み演算を完了するのに十分な時間を持つことを確実にする助けとなります、デッドロックをそのファイルに対するアクセスに関して他のプロセスによって作成することなしにです。協調読み出しまたは書き出しが認められるのを待っている間にあるプロセスが一時停止されるならば、そのリクエストはキャンセルされます、そしてNSErrorオブジェクトがコードNSUserCancelledErrorとともに生成されます。バックグラウンドタスクが期限切れになるならば、そのプロセスは終了されます。

Threading Considerations スレッドの考察

Each file coordinator object you create should be used on a single thread only. If you need to coordinate file operations across multiple objects in different threads, each object should create its own file coordinator. あなたが作成する各ファイルコーディネータオブジェクトは、単一のスレッドだけで使われるべきです。あなたが異なるスレッドにおける複数のオブジェクトにまたがって協調ファイル演算を必要とするならば、各オブジェクトはそれ独自のファイルコーデネータを作成するべきです。

Topics 話題

Initializing a File Coordinator ファイルコーデネータを初期化する

Managing File Presenters ファイルプレゼンタを管理する

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

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

Constants 定数

Ubiquity Change Notifications 遍在的に通知を変更する

Relationships 関係

Inherits From 継承元

See Also 参照

Shared Files 共有ファイル