CKContainer accountStatusWithCompletionHandler返回错误的值

时间:2015-12-04 15:33:55

标签: ios cloudkit

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

Doc说.NoAccount表示:

  

用户的iCloud帐户无法使用,因为没有帐户   已为此设备提供信息。

我没有收到任何错误。原因可能是app没有使用私有数据库? Doc说:

  

在访问私有数据库之前调用此方法以确定   该数据库是否可用。

2 个答案:

答案 0 :(得分:2)

想通了,iCloud Drive已关闭该应用程序。

答案 1 :(得分:0)

此代码示例显示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
        }
    })