我想在iCloud驱动器中保存一个PDF文件。用户应该可以通过他的iCloud Drive应用程序访问该文件。
目前,我可以在iCloud驱动器中保存一个文件,但它在一个隐藏目录中。
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驱动器中的隐藏目录(这是特定于我的应用程序的)。
现在我的问题是:我可以将文件保存在iCloud驱动器中的标准文档目录中吗?或者我可以为我的应用程序中的文档创建一个文件夹,用户可以看到它吗?
尝试将文件保存在“documents”目录下,这样可以确保文件保存在用户的公共目录下,并且在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目录,如果不存在,则创建一个新目录。