CKContainer accountStatusWithCompletionHandler返回错误的值

accountStatusWithCompletionHandler方法返回.NoAccount值。 任何想法为什么返回的值不是。 .Available ? 我login到iCloud,并连接到互联网。

Doc说.NoAccount表示:

用户的iCloud帐户不可用,因为没有为此设备提供帐户信息。

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

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

想通了,iCloud驱动器被closures的应用程序。

此代码示例显示与iCloud的状态。 大概请求权限或促销用户login.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 } })