2

我会让用户使用 iCloud 驱动器保存他的数据备份。效果很好。但如果我切换到另一个启用了 iCloud Drive 的设备,我就无法读取该文件。

我可以在 iCloud Drive 应用程序中看到备份文件,但它没有下载,(它显示“从 icloud 下载符号”)。

如果用户想要恢复备份,是否可以强制下载目录中可用的所有文件?

在 iOS 8/9 上使用 Swift 2。

4

1 回答 1

3

我自己解决了这个问题。我会检查我的备份文件是否可用以及是否需要下载。如果是这样,我将开始下载并通知用户几秒钟后再回来查看。不是最好的解决方案,但现在它可以工作。

func checkAndDownloadBackupFile() -> Bool{
    if(iCloudDocumentsURL != nil){
        let file = iCloudDocumentsURL!.URLByAppendingPathComponent("backup.file")
        let filemanager = NSFileManager.defaultManager();

        if !filemanager.fileExistsAtPath(file.path!){

            if filemanager.isUbiquitousItemAtURL(file) {
                let alertView:UIAlertView = UIAlertView()
                alertView.title =  "Warning"
                alertView.message = "iCloud is currently busy syncing the backup files. Please try again in a few minutes."
                alertView.addButtonWithTitle("OK")
                alertView.show()

                do {
                    try filemanager.startDownloadingUbiquitousItemAtURL(file)
                } catch{
                    print("Error while loading Backup File \(error)")
                }
            }
            return false
        } else{
            return true
        }
    }
    return true
}
于 2015-11-03T07:34:50.843 回答