如何使用 Cloudkit 快速从 iCloud 获取当前用户信息
Posted
技术标签:
【中文标题】如何使用 Cloudkit 快速从 iCloud 获取当前用户信息【英文标题】:How do i get the current user information from iCloud using Cloudkit , swift 【发布时间】:2016-05-08 12:12:36 【问题描述】:我的问题是如何使用 cloudkit 从 iCloud 获取当前登录的用户信息。我想向此用户默认部分添加更多字段,并在需要时检索这些数据。我尝试制作新架构来保存用户数据。
【问题讨论】:
您在寻找什么信息? CloudKit 只允许您获取用户名。 @rmaddy 我想将用户名、电子邮件地址和联系方式保存到 iCloud 的用户部分。是否有代码可以从 cloudkit 中获取用户设备 ID 和用户名? 查看CKContainer
的文档。
【参考方案1】:
可以向 CloudKit 中的用户记录类型添加额外的字段,但不建议这样做。 User 记录类型是一种特殊的记录类型,有很多限制。最好创建一个新的记录类型,您可以在其中保存其他用户设置。然后,您可以将 CKReference 设置为实际的用户 recordId。
要获取活动用户记录ID,请使用CKcontainer
函数fetchUserRecordIDWithCompletionHandler
。如果您想获取名字和姓氏(您无法获取更多信息),请使用函数discoverUserInfoWithUserRecordID
【讨论】:
感谢您的回答。我将尝试创建一个新记录并将用户信息保存在其中。我担心的是,根据 Apple 指南,我们不应该看到或发现用户密码,因此在创建用户记录时,必须将用户名和密码保存到该用户记录中。如果我这样做,那么我将能够看到用户密码。这会导致苹果拒绝我的应用吗? 您不需要用户登录。当您使用CloudKit时,您将确定他的iCloud帐户是正确的并已登录。您可以查询用户ID和名称。如果失败,您将知道用户未登录,您可以告诉用户在设置应用程序中登录 iCloud。 请注意,discoverUserInfoWithUserRecordID
在 ios 10 中已弃用。首选方法现在是 discoverUserIdentity(with....)
方法。以上是关于如何使用 Cloudkit 快速从 iCloud 获取当前用户信息的主要内容,如果未能解决你的问题,请参考以下文章
App 启动时如何知道 CloudKit 的 iCloud 数据同步操作已经结束了?