Cloudkit相当新,我一直在弄清楚如何建模我的数据。下面我给出了一小段与我的模型类似的代码示例。
def TRUE = "TRUE" ^^ (_ => True)
我想将此数据存储在云上,然后获取要在我的应用上显示的数据。事情是我不确定如何存储数据。
我如何存储它以便所有数据都链接在一起?
如果我有一个有名字字段的街道记录,我怎么能将这个名字与该人的年龄联系起来?我需要存储3个不同的记录吗?如果是这样,我将如何将记录链接在一起?
我认为你必须使用参考文献,但我不确定如何去做。
我希望我能够清楚地解释我要做的事情。
答案 0 :(得分:0)
首先,请查看Apple的CloudKit Quick Start documentation。它会更详细地讨论我要说的所有内容,我强烈建议您阅读它。
与您在代码中建模的struct
非常相似,您将在名为CloudKit Dashboard的Web门户中创建类似的对象。在将iCloud权利正确添加到您的应用程序ID后,您将可以使用此Web门户。
在侧边栏中,您将看到"记录类型"。您可以在此处创建对象而无需任何代码。 “快速入门指南”提供了有关如何创建对象的详细信息,也称为"记录类型"。 (该对象的一个实例将被称为记录。)基本上,您需要创建与对象的原始属性相对应的字段,但通常不要编辑记录中的唯一标识符'名称字段。例如,您的Person
记录类型可能包含字段firstName
(类型String
),lastName
(类型String
)和年龄(类型{ {1}})。
您的Int
记录类型可能包含Home
类型的houseNumber
字段。
CloudKit处理关系的方式与Core Data等本地存储解决方案略有不同。出于效率原因,我们并不希望对象拥有一组关联对象,因为提取Int
,然后需要获取每个Street
ID,然后获取每个{ {1}}中的{1}} ID。
因此,我们不会在House
上放置一组Person
个对象,而是在House
上放置House
类型的字段(Street
}记录类型。
因此,您可以在CloudKit仪表板中设置这种新的记录类型模型,然后您可以在代码中创建Reference
个对象并设置与这些字段对应的属性。通过在代表房屋中的人的每个House
上设置Street
属性,可以告诉代表CKRecord
个人居住的CKRecord
。
然后,您可以使用House
获取房屋,然后通过为所有"人员"创建house
来获取房屋。在CKRecord
参考字段中具有与房屋对象相对应的记录ID的对象。
请参阅CloudKit快速入门指南中的Adding Reference Fields。
编辑:在CloudKit仪表板中设置参考字段的值时,该值将是您引用的记录的唯一ID名称。