在iCloud Drive文档中保存文件(用户访问)

3
我希望能够将PDF文件保存在iCloud Drive中,用户应该可以通过他的iCloud Drive应用程序访问该文件。
目前,我可以将文件保存在iCloud Drive中,但它位于一个隐藏的目录中。
struct DocumentsDirectory {
    static let localDocumentsURL: NSURL? =  FileManager.default.urls(for:     FileManager.SearchPathDirectory.documentDirectory, in:     .userDomainMask).last! as NSURL
    static var url: NSURL? =   FileManager.default.url(forUbiquityContainerIdentifier: nil)! as NSURL
    static let iCloudDocumentsURL: NSURL? = url?.appendingPathComponent("Documents")! as! NSURL
}

使用此代码,我可以获取iCloud Drive中的隐藏目录(该目录仅适用于我的应用程序)。
现在我的问题是:我是否可以将文件保存在iCloud Drive中的标准文档目录中?或者我是否可以为来自我的应用程序的文档创建一个用户可见的文件夹?

1
实际上我已经让它工作了。我所看到的唯一解决方案是使用UIDocumentPickerViewController。如果您知道不需要Picker的更好解决方案,我会很感激。 - Joel
1个回答

2
尝试将文件保存在“文档”目录下,这将确保文件保存在用户的公共目录下,并且在iCloud应用程序中也可见。
func setupiCloudDriveForFileExport() {

    if let iCloudDocumentsURL = NSFileManager.defaultManager().URLForUbiquityContainerIdentifier(nil)?.URLByAppendingPathComponent("Documents") {
        if (!NSFileManager.defaultManager().fileExistsAtPath(iCloudDocumentsURL.path!, isDirectory: nil)) {
            do {
                try NSFileManager.defaultManager().createDirectoryAtURL(iCloudDocumentsURL, withIntermediateDirectories: true, attributes: nil)
            }catch let error as NSError {
                print(error)
            }
        }
    }
}

这段代码检查iCloud上是否存在Documents目录,如果不存在则创建一个新的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接