2017-10-25 7 views
0

私はUIDocumentBrowserViewControllerを持つドキュメントベースのアプリケーションで作業しています。アプリ自体は、ユーザーが編集して保存できるtxtファイルを作成します。UIDocumentを一意に識別する

これらのファイルをApple Watchのコンパニオンアプリに送信します。ユーザーはそれを時計で見ることができます。 UIDocumentは私のアプリケーションで読み込まれ、WCSessionで送信されるように変換されます。

質問は次のとおりです。UIDocumentを一意に識別するにはどうすればよいですか?

ファイル名または各テキストファイルの最後にUUIDを入れて自分の識別子を作ることができますが、これは甘い解決策ではありません。

答えて

0

ですが、作成後にユーザーが表示名を変更できるようにすることもできます。

UIDocumentクラスは、 というファイル名とドキュメント名(表示名とも呼ばれます)の間の対応関係を前提としています。 既定では、UIDocumentはファイル名を localizedNameプロパティの値として格納します。ただし、アプリケーションで ユーザーが文書ファイル名または表示名を指定する必要はありません。 は新しい文書を作成します。

は、新しいドキュメントのファイル名を自動的に生成するための慣例を考案する必要があります。一部 提案は、次のとおり

  • は、アプリケーション固有のプレフィックスで必要に応じて、各ドキュメントのUUID(汎用一意識別子)、 を生成します。

  • 各ドキュメントのタイムスタンプ(日付と時刻)を生成します(オプションでアプリケーション固有の接頭辞を付けることもできます)。

  • たとえば、「Notes 1」、「Notes 2」などの連番システムを使用します。文書(表示)名については

それが(例えば、「ノート1」のように)理にかなっている場合は、最初に文書 ファイル名を使用する場合があります。または、 文書にテキストが含まれていて、ユーザーが文書にテキストを入力した場合は、 の最初の行(または最初の行の一部)を の表示名として使用できます。 アプリケーションは、文書が作成された後に の文書名をカスタマイズする何らかの方法をユーザーに提供できます

+0

私はうまくいかないと思います。ユーザーがファイルを別の場所に移動するか、iCloud Driveでファイルの名前を変更すると、fileURLが変更されます。また、更新日が変更されるたびに変更日付も変更されるため、変更日は機能しません。 –

+0

@NicoS。そうです、それは理にかなっています。時計を使うことに慣れていないので、それを考慮していませんでした。 – CodeBender

+0

回答をお寄せいただきありがとうございますが、これはファイル名の周囲にラッパーを作成して非表示にすることができるアプリの方が多いです。 iCloud Driveでは、ユーザーは常に生のファイル名を見ることができます。これは私の質問に記載されているような解決策ですが、それは甘い解決策ではありません;) –

関連する問題