2017-11-07 38 views
2

私はiOSアプリケーションでパーシスタンスレイヤーを作成しており、URLのbookmarkData機能を知りました。それは使い方が簡単ですが、このトピックのディスカッションを検索すると、macOSアプリケーションに関してbookmarkDataが使われているだけです。iOSのファイルURLを永続化するには、bookmarkDataを使用する必要がありますか?

問題のファイルは、ユーザーが直接作成したものではなく、ユーザーがディレクトリから移動した場合、ファイルを忘れる可能性があります。

これらの詳細を念頭に置いて、アプリケーションの起動間にファイルURLにアクセスするためにブックマークデータを維持する必要がありますか、直接ファイルURLを保存するのは安全ですか?

答えて

0

ファイルがアプリケーションのサンドボックス外にある場合は、ブックマークデータを保存する必要があります.UIDocumentPickerVCによって提供されるセキュリティスコープのURLをdocumentationに再利用することはできません。このブックマークデータを取得するには、ファイルプレゼンター/コーディネーターまたはUIDocumentを使用してファイルにアクセスする必要があります。私は私が最初のファイルで作業をすることなく、ブックマークデータを保存しようとしたとき、私はエラーで時間を無駄にして、これは、支援を期待

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { 
    for url in urls { 

     //My experience is that your UIDocument subclass needs to be called first 
     // otherwise bookmarkData() will throw 
     //Instead of UIDocument you could call your own file presenter logic 
     var doc = MyUIDocument(fileURL: url) 
     let bookmarkData = try url.bookmarkData() 

     //Store your bookmarkData so you can later resolve a new URL 
    } 

:コードは次のようなものを見ることができます。

関連する問題