CKContainer accountStatusWithCompletionHandler 返回错误值
Posted
技术标签:
【中文标题】CKContainer accountStatusWithCompletionHandler 返回错误值【英文标题】:CKContainer accountStatusWithCompletionHandler returns wrong value 【发布时间】:2015-12-04 15:33:55 【问题描述】:accountStatusWithCompletionHandler
方法返回.NoAccount
值。知道为什么返回值不是.Available
吗?我已登录 iCloud,并连接到互联网。
文档说.NoAccount
的意思是:
用户的 iCloud 帐户不可用,因为没有帐户 已为此设备提供信息。
我没有收到任何错误。原因可能是应用程序没有使用私有数据库?医生说:
访问私有数据库前调用该方法判断 该数据库是否可用。
【问题讨论】:
accountStatusWithCompletionHandler 这个方法也应该返回错误。能否请您也打印错误。 @OlegGordiichuk 您只会收到“无法确定”结果的错误。 【参考方案1】:想通了,iCloud Drive 已为该应用程序关闭。
【讨论】:
切换到新手机后遇到了同样的问题。正要问你在哪里启用了 iCloud Drive,因为我找不到它......找到它,所以对于有同样问题的任何人,请转到设置-> icloud。确保 icloud drive 已打开,然后向下滚动以启用它以供任何需要它的应用程序使用。这一定是最近发生了变化,因为我以前从来没有这样做过,并且已经使用 CK 一段时间了。谢谢!【参考方案2】:此代码示例显示 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 @János 我将使用我的帐户再次重新测试此代码以上是关于CKContainer accountStatusWithCompletionHandler 返回错误值的主要内容,如果未能解决你的问题,请参考以下文章
无法从应用程序扩展访问我的“CKContainer”中的任何数据 - CloudKit,Swift
CKContainer requestApplicationPermission 中的服务不可用错误(CKError Code 6)