2017-10-24 20 views
0

私はUIDocumentベースのアプリがあり、iCloudに保存されているドキュメントのリストを表示します。 NSMetadataItemからファイル名が表示されています(metadataItem.value(forAttribute: NSMetadataItemDisplayNameKey))。ドキュメントには文字列が含まれており、この文字列を含むより良い名前を生成するためにlocalizedNameプロパティをオーバーライドしました。理想的には、ダウンロードされる前にUIDocumentのlocalisedNameプロパティを表示したいと思います。これを行う方法はありますか?ドキュメント全体をダウンロードせずに、UIDocumentからlocalizedNameを取得しますか?

FileWrapperとして保存しています。ドキュメントの各部分にはFileWrapperが含まれています。私の場合、これはちょうどUIImageStringです。

ドキュメントをダウンロードせずにサムネイルを取得していますので、この文字列に相当するものがあるかどうかは疑問でした。

私はスイフト4を使用していますが、ここでは違いはないと思います。どうもありがとう。

答えて

0

ジョシュ、

fileURL.deletingPathExtension()。lastPathComponent

はあなたに非オーバーライドさlocalizedNameと同等のものを提供します。

あなたの投稿から、あなたのmetadataquery.resultsがあなたにURLのリストを与えることが分かっていると推測することができます。これはどのURLでも使用できます。

FYIでは、UIDocumentがインスタンス化された後にun-overrideされたlocalizedNameは機能しません。最初に開く必要があります。これは愚かなようです。

fileURLに基​​づいていない名前よりも賢明な名前を付ける必要がある場合は、まずファイルを開く必要があります。

私はあなたがこれを理解していることは分かっていますが、他の人には、localizedNameをオーバーライドするだけで、おそらくユーザーの位置に基づいて欲しい文字列に変更できます。

fileWrappersを使用すると、格納された変数を開いて取得でき、「Big Object」を開く必要がなくなります。サムネイルはこの方法でロードされていましたが、ファイルブラウザを追加してからクラウドにネイティブにアップグレードされました。

TableView、CollectionViewにこれらの表示を開くように時間をかけていますか?私が尋ねる理由は、ファイルが開いている間にUIDocumentがARC準拠ではないからです.Dahamonはクラウドに接続することでハードリファレンスを保持し、Deamonを遅くしてしまい、TableViewCellが存在しない場合はUIDocumentを許可しません。ファイルが閉じられる前に再利用されます。つまり、ドキュメントへのポインタが失われます。

+0

ありがとうございましたが、私がサムネイルを取得しているように、ドキュメントを開くことなく、カスタムのオーバーライドされたドキュメント名を取得できるかどうかは疑問でした。新しいファイルが存在するという通知を受け取ると、カスタムタイトルを生成するのに十分なデータがダウンロードされるまで、一時的な名前(フ​​ァイル名など)を表示する必要があります。 –

+0

名前をカスタマイズする方法を教えてくれませんでした。 – Sojourner9

+0

私は、名前がドキュメント全体を必要とするかもしれない何かに基づいてカスタマイズされることを意味します。したがって、そのコンテンツを所有している(または有している)デバイスでは、その名前を何らかのメタデータとして保存するため、新しいデバイスはドキュメント全体をダウンロードする前にその名前文字列だけをダウンロードできます。 –

関連する問題