首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取iCloud名称和电子邮件swift3

获取iCloud名称和电子邮件swift3
EN

Stack Overflow用户
提问于 2017-02-28 13:13:32
回答 1查看 977关注 0票数 1

我使用这段代码试图获取用户的iCloud信息:

代码语言:javascript
运行
复制
CKContainer.default().requestApplicationPermission(.userDiscoverability) { (status, error) in
        self.container.fetchUserRecordID { (recordIDFetched, error) in
            if error == nil {
                if let temp = recordIDFetched {
                    let temp2 = CKUserIdentityLookupInfo(userRecordID: temp)
                    let fetchedID = CKDiscoverUserIdentitiesOperation(userIdentityLookupInfos: [temp2])
                    print("\nIDCount")
                    print(fetchedID.userIdentityLookupInfos.count)
                    print("\nIDInfo")
                    print(fetchedID.userIdentityLookupInfos[0].userRecordID ?? "Default RecordID")
                    print("\nIDEmail")
                    print(fetchedID.userIdentityLookupInfos[0].emailAddress ?? "Default Email")
                    print("\nIDPhone")
                    print(fetchedID.userIdentityLookupInfos[0].phoneNumber ?? "Default Phone")
                }
            } else {
                print("Error")
                print(error ?? "Default Error")
            }
            
        }
    }

但是,当我运行它时,它会返回:

IDCount 1 IDInfo zoneID=_defaultZone:defaultOwner CKRecordID: 0x6080002303a0;recordName=_06a68abd6423ca06532871a8803f31ee IDEmail 默认电子邮件 IDPhone 默认电话

我做错了什么?我知道用户登录到iCloud中,因为它正在从服务器获取一些数据,好的--这一点就失败了。

EN

回答 1

Stack Overflow用户

发布于 2017-03-02 12:16:21

我现在不能测试我的解决方案,但是看起来您需要几个额外的步骤。

您应该从用户标识操作块类调用CKDiscoverUserIdentitiesOperation

由于CKDiscoverUserIdentitiesOperation继承自CKOperation,我认为您应该使用添加方法将操作添加到另一个CKContainer以执行它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42509722

复制
相关文章

相似问题

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