我们正在开发iOS 11 Files App扩展程序,我们可以显示文件夹,文件和缩略图正确。但是,当涉及到存储元数据时 文件标签(颜色),文件夹收藏夹等文件虽然我们正在设置工作集,但在文件应用程序重新启动期间不会保留。 它在Files App中的Recent items中简要显示了Files标签,但之后它就消失了。在文件应用程序重新启动后,这些标记元数据也不会保留。在WWDC '17视频中,我们可以看到人们提到有关数据库,谁必须创建和维护这个数据库?
当我重新启动Files App时,我可以看到一些数据库查询正在进行如下。 但是,我们的提供程序从未在此DB Query的结果中列出。
Reusing collector for descriptor with query (((FieldMatch(kMDItemContentTypeTree, "public.item")))) && ((kMDItemIsTrashed != "1")) && ((kMDItemFileProviderID == "*" && _kMDItemBundleID != "com.apple.fileprovider.fileproviderd*")) && (kMDItemUserTags == "*")
我们缺少任何持久性逻辑吗? 我们的文件提供商扩展是否必须创建&维护这个DB?或者它只是文件应用程序的一个数据库,扩展可以写入它?
答案 0 :(得分:0)
每个文件提供程序都应为所有脱机文件(即最近的文件,标签等)维护自己的数据库。当文件App启动时,它调用provideURL()方法,该方法将被文件提供程序覆盖。接到此电话后,我们必须向我们的数据库查询离线项目并提供相同的网址。
同样工作集同步锚点应该正确维护,否则我们不会收到回拨以将项目添加到文件应用程序工作集。