NSMetadataQuery returns 个显然不存在的文件

NSMetadataQuery returns files which apparently don't exist

我最近开始将 iCloud 功能集成到应用程序中。我有 2 个测试电子表格,当通过我的应用程序上传到 iCloud 时它们可以正常工作(用于测试目的)。现在,当我将更多电子表格放入现在出现在我 Mac 的 Finder window 中的相应 iCloud 应用程序文件夹中时,该应用程序将这些文件视为隐藏文件并且无法读取。

谁能告诉我为什么这些文件被保存为隐藏文件?我怎样才能防止这种情况发生。我的应用程序需要能够从我的任何 Apple 设备(或 Windows 使用 iCloud for Windows 软件)读取放置在 iCloud 应用程序文件夹中的 CSV 文件。

在没有 Apple 文档帮助的情况下,我设法找到了一些论坛,这些论坛解释了这些隐藏文件意味着它尚未下载。我想首先下载文件的元数据以表明它们存在,但只有在请求时才会实际下载文件。

在我的代码中,如果文件被隐藏,我只需拨打电话即可开始下载:

bool downloading = [[NSFileManager defaultManager] startDownloadingUbiquitousItemAtURL:[result valueForAttribute:NSMetadataItemURLKey] error:&error];

这将开始下载 NSMetadataQuery return 编辑的文件,如果启动成功,将 return 一个布尔值。在这一点上,我只是弹出一个警告,让用户知道它正在下载,并在几秒钟后重试(小文件,所以一般只需要几个)。将来我可能会尝试实现下载进度或等待屏幕,但现在它完成了工作。