我希望在私人数据库中有一个代表购物清单的记录,然后我希望该购物清单的子记录代表购物清单上的项目。我想知道这是否可行,如果可能的话,我应该将其作为购物清单记录的儿童记录来实施,还是我应该制作" item" "购物清单的属性"使用NSArray类型记录,然后将CKRecords项添加到该数组。
在文件中不清楚CKRecord是否可以是另一个CKRecord的孩子。
答案 0 :(得分:0)
有一种记录类型代表您的购物清单,另一种记录类型代表购物清单上的商品。
在您的购物清单记录类型中,有一个CKReferences数组的字段,每个字段指向一个项目记录。
在您的商品记录类型中,有一个CKReference字段指向购物清单(例如名为isOnShoppingList)并将其CKReferenceAction设置为DeleteSelf。这将确保在删除购物清单时删除该项目。
(编辑:使用CKReferenceAction = DeleteSelf添加反向引用。)
答案 1 :(得分:0)
According to Apple,最好“围绕中央记录类型整理记录”。这可能是您的购物清单记录。您的购物清单项目记录将是可能的许多“支持主要类型的其他记录类型”之一。
为了将这两者联系起来,Apple建议我们在"Introducing CloudKit (Session 208) at WWDC 2014中使用他们称之为“反向引用”的东西。这包括让您的购物清单项目记录维护一个引用回到它所关联的购物清单,而不是相反。这使查询不那么密集,因为您可以使用列表的Id来简单地获取列表项记录,而不是搜索每个列表的每个项目的引用数组。此外,此设计更接近于显示购物清单列表的常规应用程序界面设计,然后在选择购物清单后显示项目列表。