从CKReference获取CKReference对象

时间:2016-05-18 09:58:47

标签: ios database cloudkit ckrecord ckreference

我有3种记录类型,其中包含如下属性:

客户端

  

用户名:字符串

     

ProfilImage:UIImage

注释

  

用户:客户参考

     

消息:字符串

商店

  

评论:评论参考列表

我可以从Shop CKRecord对象获取客户端用户名和ProfilImage吗?我可以这样做:

  1. 从商店记录
  2. 中获取评论参考
  3. 从找到的每个评论参考中获取用户参考
  4. 最后从商店记录评论参考的用户参考中获取用户名和个人资料
  5. 如果有路径,最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

以下是步骤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!) }