CKContainer accountStatusWithCompletionHandler returns 错误值

CKContainer accountStatusWithCompletionHandler returns wrong value

accountStatusWithCompletionHandler 方法 returns .NoAccount 值。知道为什么返回值不是 .Available 吗?我已登录 iCloud,并连接到互联网。

文档说 .NoAccount 意思是:

The user’s iCloud account is not available because no account information has been provided for this device.

我没有收到任何错误。原因可能是应用程序没有使用私有数据库?医生说:

Call this method before accessing the private database to determine whether that database is available.

此代码示例显示 iCloud 的状态。可能请求许可或促销用户登录 .NoAccount 个案例。我认为这是您未连接到 iCloude 时的情况。

let container = CKContainer.defaultContainer()
    container.accountStatusWithCompletionHandler({status, error in
        switch status {
            case .Available, .Restricted:
            container.requestApplicationPermission(CKApplicationPermissions.PermissionUserDiscoverability,
                completionHandler: { applicationPermissionStatus, error in
                // handle applicationPermissionStatus for statuses like CKApplicationPermissionStatus.Granted, .Denied, .CouldNotComplete, .InitialState
            })
            case .CouldNotDetermine, .NoAccount:
                // Ask user to login to iCloud
        }
    })

发现,应用程序的 iCloud Drive 已关闭。