6

NSFileCoordinator を使用してファイルを書き込む場合、正しい NSFileCoordinatorWritingOptions を指定する必要があります。詳細に説明されていますが、いつどれを使用すればよいかわかりません。利用可能なオプションは次のとおりです。

  • NSFileCoordinatorWritingForDeleting
  • NSFileCoordinatorWritingForReplaceing
  • NSFileCoordinatorWritingForMoving
  • NSFileCoordinatorWritingForMerging

たとえば、ファイル (plist など) を作成する場合、どのオプションが適切ですか? ファイルを変更するときはどれですか?

理解を深めるために、誰かが NSFileCoordinatorWritingOptions を説明できますか?

4

1 に答える 1

8

私は同意します、ドキュメントはその面で完全ではなく、理解するのは難しいです。また、このような基本的な操作でもサンプルコードはありません。

私は、特定のファイルを開いている他のアプリの観点からこれらのオプションを考えようとしています。これは、全体像を把握するのに役立ちます。

  • オプション(0)を渡さないで、ファイルを更新し、変更を他の人に通知します。

  • NSFileCoordinatorWritingForDeletingオプションを指定して、テキストエディットが現在表示しているファイルを削除するとします。ファイルがもう存在しないため、ファイルを閉じるようにテキストエディットに指示します(または、ファイルがメモリ内にある場合は別の場所に保存することを提案できます)。削除のために動作します。

  • (ファイルを更新するのではなく)ファイルを上書きする場合は、他のアプリでもほぼ同じ動作が必要です。それはNSFileCoordinatorWritingForReplacingです。

  • NSFileCoordinatorWritingForMovingは、他のアプリがファイルを新しい場所まで追跡して、後で更新できるようにすることを指示します。

  • NSFileCoordinatorWritingForMergingは、他のプロセスに最初に変更をコミットするように要求します。これにより、自分の変更をそれらとマージできます。

質問に答えるには、新しいファイルを作成するときにNSFileCoordinatorWritingForReplacingを使用する必要があります(ファイルが存在しない場合でも、その間に別のアプリから表示されるため、独自の無関係なコンテンツに置き換えます)。また、NSFileCoordinatorWritingForMergingは、既存のファイルを新しいデータで更新するときに使用する必要があります。これにより、(後で競合解決を行うのではなく)そのファイルへの最新の変更をすぐに統合できます。

于 2012-12-11T07:24:55.267 に答える