ios - CloudKit:获取用户的名字/姓氏

标签 ios cloudkit

我正在尝试使用云工具包获取用户的名字,但是以下代码未获取用户的名字,并且将firstNameFromFunction变量保留为空。有谁知道如何在iOS 10中实现这一目标?

let container = CKContainer.default()        
container.fetchUserRecordID { (recordId, error) in
            if error != nil {
                print("Handle error)")
            }else{

                self.container.discoverUserInfo(
                    withUserRecordID: recordId!, completionHandler: { (userInfo, error) in
                        if error != nil {
                            print("Handle error")
                        }else{
                            if let userInfo = userInfo {
                                print("givenName =   \(userInfo.displayContact?.givenName)")
                                print("familyName = \(userInfo.displayContact?.familyName)")
                                firstNameFromFunction = userInfo.displayContact?.givenName
                            }else{
                                print("no user info")
                            }
                        }
                })
            }
        }

最佳答案

第一次询问时出现的权限屏幕IMO措辞很差。他们需要改变这一点。它说:“允许使用“您的应用程序”的人通过电子邮件查找您?知道您的电子邮件地址的人将能够看到您使用此应用程序。”这没有任何意义。这与要求用户获取其iCloud的名字,姓氏,电子邮件地址无关。

说到电子邮件地址-该名称和lookupInfo属性中的电话号码丢失-即设置为nil,即使这些值合法且正确。今晚提交错误。

关于ios - CloudKit:获取用户的名字/姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45311970/

相关文章:

ios - CloudKit,我的授权不工作

ios - NSPredicate 获取具有两个一对多关系的实体

ios - 使用 NSPersistentCloudKitContainer 处理重复项

ios - 如何快速在 UIImage 上绘制/涂鸦线?

ios - 收到 SUbiquity Identity DidChangeNotification 后我应该做什么?

ios - 为什么我在 iOS 中的 DateComponents 对象不能正确地保存到 CloudKit 或从中检索?

ios - 我可以在 CKQuery 中使用 recordID.recordName 吗?

ios - 如何通过 Today Extension (iOS 8) 访问 Core Data/CloudKit

ios - SwiftUI:导航栏显示第一个列表项的标题,否则显示 "Back"

ios - 我可以在 Swift 中强制协议(protocol)符合吗?