从UIDocument获取localizedName而不下载整个文档?

时间:2017-10-24 08:21:59

标签: icloud uidocument

我有一个基于UIDocument的应用程序,它显示了存储在iCloud中的文档列表。我正在使用NSMetadataItemmetadataItem.value(forAttribute: NSMetadataItemDisplayNameKey)获取文件名(用于显示)。文档包含一个字符串,我已重写localizedName属性以生成包含此字符串的更好名称。理想情况下,我想在下载之前显示UIDocument的localisedName属性。有没有办法做到这一点?

我将UIDocument存储为FileWrapper,其中包含FileWrapper个文档的每个部分。就我而言,这只是UIImageString

我设法在没有下载文档的情况下获取缩略图,所以我想知道这个字符串是否有相同的东西。

我正在使用Swift 4,但我认为这没有任何区别。非常感谢。

1 个答案:

答案 0 :(得分:0)

乔希,

fileURL.deletingPathExtension()。lastPathComponent

将为您提供相当于未覆盖的localizedName。

我可以从你的帖子推断你知道你的metadataquery.results会给你一个URL列表。您可以在任何网址上使用此功能。

仅供参考,未经重写的localizedName在您的UIDocument实例化后甚至无法工作,您必须先打开它,这看起来很傻。

如果您需要使名称更加花哨而不是基于fileURL,那么您需要先打开文件,据我所知。

我知道你理解这一点,但是对于其他人来说,覆盖localizedName只是让你将它修改为你想要的字符串,可能是基于用户的位置,笑脸。

使用fileWrappers将允许您打开并获取任何存储的变量,而不必打开" Big Object"。缩略图曾经以这种方式加载,但由于他们添加了文件浏览器,因此已升级为原生云。

你是否有时间迫使这些打开列表在TableView,CollectionView?我问的原因是因为UIDocument在文件打开时不符合ARC,连接到云的Deamon将保留一个硬参考,减慢Deamon,我假设,并且如果TableViewCell是,则不允许UIDocument去除在文件关闭之前重用,即指向文档的指针丢失。