首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务不可用错误(CKError代码6)在CKContainer requestApplicationPermission中

服务不可用错误(CKError代码6)在CKContainer requestApplicationPermission中
EN

Stack Overflow用户
提问于 2017-04-17 10:13:18
回答 1查看 334关注 0票数 1

我正试图使用下面的iCloud从他们的CloudKit帐户中读取用户的名字

代码语言:javascript
复制
CKContainer *container = [CKContainer defaultContainer];
[container accountStatusWithCompletionHandler:^(CKAccountStatus accountStatus, NSError * _Nullable error) {
    if (accountStatus == CKAccountStatusAvailable) {
        [container requestApplicationPermission:CKApplicationPermissionUserDiscoverability completionHandler:^(CKApplicationPermissionStatus applicationPermissionStatus, NSError * _Nullable error) {
            if (applicationPermissionStatus == CKApplicationPermissionStatusGranted) {
                [container fetchUserRecordIDWithCompletionHandler:^(CKRecordID * _Nullable recordID, NSError * _Nullable error) {
                    if (!error && recordID) {
                        [container discoverUserIdentityWithUserRecordID:recordID completionHandler:^(CKUserIdentity * _Nullable userInfo, NSError * _Nullable error) {
                            NSLog(@"UserInfo: %@  Error: %@", userInfo, error);
                        }];
                    }
                }];
            }
        }];
    }
}];

但是,每次requestApplicationPermission失败时,服务不可用,错误,状态为CKApplicationPermissionStatusCouldNotComplete。我不知道我在这里做错了什么。我尝试了多个设备和帐户,但结果仍然是一样的。我尝试过禁用和启用CloudKit的功能,就像在某些地方建议的那样,但没有成功。是否有任何信息,我需要配置,我正在丢失。下面是我的iCloud功能

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-19 11:44:54

实际上,在调用statusForApplicationPermission:之前,我需要调用requestApplicationPermission。令人费解的是,仅仅因为我没有检查权限状态,权限请求就失败了。这也与Service UnAvailable错误有关。下面是工作的代码(不太优雅):

代码语言:javascript
复制
CKContainer *container = [CKContainer defaultContainer];
[container accountStatusWithCompletionHandler:^(CKAccountStatus accountStatus, NSError * _Nullable error) {
    if (accountStatus == CKAccountStatusAvailable) {
        [container statusForApplicationPermission:CKApplicationPermissionUserDiscoverability completionHandler:^(CKApplicationPermissionStatus applicationPermissionStatus, NSError * _Nullable error) {
            if (applicationPermissionStatus==CKApplicationPermissionStatusInitialState || applicationPermissionStatus==CKApplicationPermissionStatusGranted) {
                [container requestApplicationPermission:CKApplicationPermissionUserDiscoverability completionHandler:^(CKApplicationPermissionStatus applicationPermissionStatus, NSError * _Nullable error) {
                    if (applicationPermissionStatus == CKApplicationPermissionStatusGranted) {
                        [container fetchUserRecordIDWithCompletionHandler:^(CKRecordID * _Nullable recordID, NSError * _Nullable error) {
                            if (!error && recordID) {
                                [container discoverUserIdentityWithUserRecordID:recordID completionHandler:^(CKUserIdentity * _Nullable userInfo, NSError * _Nullable error) {
                                    NSLog(@"UserInfo: %@  Error: %@", userInfo, error);
                                }];
                            }
                        }];
                    }
                }];
            }
        }];
    }
}];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43449470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档