【发布时间】:2020-04-09 00:42:21
【问题描述】:
我正在开发使用 iCloud 备份和恢复应用数据的应用。 为此,我使用以下代码访问 iCloud 以在其中写入我的数据。
if let iCloudDocumentsURL = FileManager.default.url(forUbiquityContainerIdentifier: nil) {
var iCloudDocumentsURL = iCloudDocumentsURL
do {
iCloudDocumentsURL = iCloudDocumentsURL.appendingPathComponent("Documents")
try FileManager.default.createDirectory(at: iCloudDocumentsURL, withIntermediateDirectories: true, attributes: nil)
}
catch {
completion(false, error.localizedDescription)
}
let fileURL = iCloudDocumentsURL.appendingPathComponent(file)
//writing
do {
try text.write(to: fileURL, atomically: false, encoding: .utf8)
completion(true, nil)
}
catch {
completion(false, error.localizedDescription)
}
}
else {
completion(false, "iCloud is not accessible")
}
但是,如果用户没有登录 iCloud,那么它也会给我“无法访问 iCloud”,或者如果用户登录了 iCloud 但禁用了我的应用程序的 iCloud 访问,那么我也会收到相同的消息。
那么,无论如何,我怎样才能检测到类似这种具有不同状态的错误。因为我想向用户提供适当的消息,以便他可以使用我的应用程序的某些功能。 我还想知道如何检测用户的 iCloud 存储空间是否已满并且我正在尝试写入 iCloud 存储空间。 如何检测 iCloud 的可用空间?
【问题讨论】:
标签: ios swift icloud icloud-drive