如何使用Swift使用FileManager将文件永久保存到iCloud?

时间:2018-07-22 01:34:24

标签: ios swift icloud nsfilemanager

当我将文件保存到iCloud时,当应用程序关闭时,该文件不再存在。

这是我的代码,在应用程序关闭之前,打印结果会在打印语句旁边显示注释:

    FileManager.default.createFile(atPath: saveToURL.path, contents: dataImage, attributes: nil)

    print("??? \(saveToURL.path) imagePicker file exists=", FileManager.default.fileExists(atPath: saveToURL.path)) // ??? /private/var/mobile/Library/Mobile Documents/iCloud~us~gnolaum~TrialVisionBoard/12BF0AB3-C0EB-4D13-A37E-7853839225BD.jpg cellForRowAt file exists= false

请注意,当代码在创建文件后检查文件是否存在时,会检出true。

以下是应用程序再次启动后的代码:

     print("??? \(mediaURL.path) cellForRowAt file exists=", FileManager.default.fileExists(atPath: mediaURL.path)) // ??? /private/var/mobile/Library/Mobile Documents/iCloud~us~gnolaum~TrialVisionBoard/12BF0AB3-C0EB-4D13-A37E-7853839225BD.jpg cellForRowAt file exists= false

请注意,URL路径与应用程序关闭前的路径相同,但应用程序重启后的文件不存在。

我怀疑我需要为我创建的文件设置正确的属性。有人知道我到底该怎么做才能使文件保存在iCloud中吗?

其他内容:

当我在iPhone 5 Simulator上运行该项目时,我注意到我没有这个问题。当我在iPhone 5设备上运行项目时,会发生问题。

1 个答案:

答案 0 :(得分:0)

我完全错过了这个问题。我发现我需要按照本文档的指示采用完全不同的方法来处理iCloud存储:

https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/iCloud/iCloud.html#//apple_ref/doc/uid/TP40010672-CH12-SW51