无法从iOS应用检测到iCloud的可访问性

问题描述 投票:0回答:1

我正在开发使用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
1个回答
0
投票

[指定了许多不同的iCloud错误代码in the Apple Developer Documentation

您最感兴趣的是NSUbiquitousFileNotUploadedDueToQuotaError

NSUbiquitousFileNotUploadedDueToQuotaError该项目无法上传到iCloud,因为它将使帐户超过其配额。

© www.soinside.com 2019 - 2024. All rights reserved.