从 CKReference 中获取 CKReference 对象
Posted
技术标签:
【中文标题】从 CKReference 中获取 CKReference 对象【英文标题】:Fetch a CKReference object from a CKReference 【发布时间】:2016-05-18 09:58:47 【问题描述】:我有 3 种记录类型,其中包含如下属性:
客户
用户名:字符串
ProfilImage : UIImage
评论
用户:客户参考
消息:字符串
商店
评论:评论参考列表
我可以从 Shop CKRecord 对象中获取客户端用户名和 ProfilImage 吗?我可以走这条路吗:
-
从商店记录中获取 cmets 引用
从找到的每个评论参考中获取用户参考
最后从店铺记录的评论参考的用户参考中获取用户名和配置文件
如果有路径,最好的方法是什么?
【问题讨论】:
您的步骤列表正确。至于实际这样做,它与进行任何其他 fetch 没有什么不同。 好的,感谢您的回答@rmaddy。在做很多事情之前,我需要确保这些步骤是好的…… 【参考方案1】:以下是第 1 步的示例。其他步骤将与您列出的步骤类似,级联上一步的结果。 (注意:不需要显式的 CKReference 字段,因为它们可以从 CKRecord 变量中收集,但我想让示例更具可读性)
struct Shop
// other variables....
var record : CKRecord?
var commentRef : CKReference?
struct Comment
// other variables....
var record : CKRecord?
var clientRef : CKReference?
var shops : [Shop]
var comments : [Comment]
func commentsWithReference(ref: CKReference) -> [Comment]
let matchingComments = comments.filter $0.record!.recordID == ref.recordID
return matchingComments
let shopComments = shops.map commentsWithReference($0.commentRef!)
【讨论】:
谢谢,这正是我要找的 ;)以上是关于从 CKReference 中获取 CKReference 对象的主要内容,如果未能解决你的问题,请参考以下文章
从 CloudKit 获取包括 CKReference 的数据
无法在 for 循环中从公共数据库中获取多个 CKReference 记录