我正在尝试下载应用的iCloud ubiquity容器中的目录,我希望在下载完成后调用函数。我可以获得如下状态:
func synciCloud(){
do { try FileManager.default.startDownloadingUbiquitousItem(at: documentsPath)
do {
let status = try documentsPath.resourceValues(forKeys: [.ubiquitousItemDownloadingStatusKey])
print(status)
}
catch let error { print("Failed to get status: \(error.localizedDescription)") }
}
catch let error { print("Failed to download iCloud Documnets Folder: \(error.localizedDescription)") }
}
控制台打印:
URL资源值(_values:[__C. NSURL资源密钥(_原始值:基本项目下载状态键):NSURLUbiquitousItemDownloading状态当前],_密钥:设置([__C. NSURL资源密钥(_原始值:NSURL基本项目下载状态键)]))
让我困惑的是NSMetadata的语法和如何执行我的函数。我的第一个想法是做一些类似下面的代码,但我不知道如何去做:
if status.ubiquitousItemDownloadingStatus == ???? { function() }
如有任何建议,我们将不胜感激。
谢谢你。
2条答案
按热度按时间7fyelxc51#
您还可以通过
NSMetadataQuery
通知监控下载状态。58wvjzkj2#
status.ubiquitousItemDownloadingStatus
的值是URLUbiquitousItemDownloadingStatus
,它有三个值,.current
表示文件是最新的。