Swift Cloudkit 获取当前用户信息以在整个应用程序中使用

Posted

技术标签:

【中文标题】Swift Cloudkit 获取当前用户信息以在整个应用程序中使用【英文标题】:Swift Cloudkit fetch current user information for use throughout the application 【发布时间】:2015-08-26 03:09:08 【问题描述】:

我正在尝试在整个应用程序中查找并使用与 iCloud 中当前登录用户相对应的一个 CKRecord。

我正在获取用户并将其从 AppDelegate 保存(以一种看似不必要的复杂方式),然后当我在整个应用程序中需要它时从 AppDelegate 检索记录。

但是,用户的检索比应用程序加载所需的时间更长,因此当根视图控制器加载时,我设置为用户名的文本标签为空,因为用户尚未被取回。这会导致应用程序崩溃,因为“致命错误:在展开可选值时意外发现 nil”,而 nil 值是用户记录。

必须有一种更简单、更快捷的方式从 CloudKit 中检索当前用户的记录。任何帮助将不胜感激! :)

【问题讨论】:

【参考方案1】:

CloudKit 查询将是一个异步调用。您将永远无法确定将在什么时候使用数据进行回调。所以你不应该依赖那里的数据。如果您有任何依赖于该数据的代码,则从 CloudKit 回调中调用该代码。如果您确实需要从其他地方访问该数据,请确保在访问之前添加 nil 检查。

【讨论】:

以上是关于Swift Cloudkit 获取当前用户信息以在整个应用程序中使用的主要内容,如果未能解决你的问题,请参考以下文章

swift Swift - CloudKit - 谓词来获取用户

swift Swift - CloudKit - 获取用户ID

swift Swift - CloudKit用户ID和信息

从当前 iCloud 用户获取 CloudKit 记录

如何获取当前用户创建的所有 CloudKit 记录?

iOS swift:使用 coredata (cloudkit) 存储缓存