iOS 11文件应用程序未持久保存为工作集中的文件存储的标签元数据

时间:2018-04-13 03:29:17

标签: file tags ios11 favorites

我们正在开发iOS 11 Files App扩展程序,我们可以显示文件夹,文件和缩略图正确。但是,当涉及到存储元数据时 文件标签(颜色),文件夹收藏夹等文件虽然我们正在设置工作集,但在文件应用程序重新启动期间不会保留。 它在Files App中的Recent items中简要显示了Files标签,但之后它就消失了。在文件应用程序重新启动后,这些标记元数据也不会保留。在WWDC '17视频中,我们可以看到人们提到有关数据库,谁必须创建和维护这个数据库? enter image description here

当我重新启动Files App时,我可以看到一些数据库查询正在进行如下。 但是,我们的提供程序从未在此DB Query的结果中列出。

Reusing collector for descriptor with query (((FieldMatch(kMDItemContentTypeTree, "public.item")))) && ((kMDItemIsTrashed != "1")) && ((kMDItemFileProviderID == "*" && _kMDItemBundleID != "com.apple.fileprovider.fileproviderd*")) && (kMDItemUserTags == "*")

我们缺少任何持久性逻辑吗? 我们的文件提供商扩展是否必须创建&维护这个DB?或者它只是文件应用程序的一个数据库,扩展可以写入它?

Attached image from WWDC

1 个答案:

答案 0 :(得分:0)

每个文件提供程序都应为所有脱机文件(即最近的文件,标签等)维护自己的数据库。当文件App启动时,它调用provideURL()方法,该方法将被文件提供程序覆盖。接到此电话后,我们必须向我们的数据库查询离线项目并提供相同的网址。

同样工作集同步锚点应该正确维护,否则我们不会收到回拨以将项目添加到文件应用程序工作集。