Ios 如何在Cloudkit上创建此数据/模型以在我的应用程序中显示?
对于Cloudkit来说,这是一个相当新的概念,我一直在研究如何对数据建模。下面我给出了一个与我的模型类似的小代码示例Ios 如何在Cloudkit上创建此数据/模型以在我的应用程序中显示?,ios,swift,cloudkit,Ios,Swift,Cloudkit,对于Cloudkit来说,这是一个相当新的概念,我一直在研究如何对数据建模。下面我给出了一个与我的模型类似的小代码示例 struct Street { var house: [Home] } struct Home { var people: [Person] var houseNumber: Int } struct Person { var firstName: String var lastName: String var age: Int
struct Street {
var house: [Home]
}
struct Home {
var people: [Person]
var houseNumber: Int
}
struct Person {
var firstName: String
var lastName: String
var age: Int
}
我想将这些数据存储在云上,然后获取要在我的应用程序上显示的数据。问题是我不确定如何存储数据
我如何存储它,以便将所有数据链接在一起
如果我有一个街道的记录,其中有一个姓名字段,我如何能够将姓名与该人的年龄联系起来?我需要存储3个不同的记录吗?如果是,我将如何将这些记录链接在一起
我想你必须使用参考资料,但我不知道该怎么做
我希望我能清楚地解释我要做的事情。首先,请查看苹果的。这本书将详细介绍我将要说的所有内容,我强烈推荐阅读 与在代码中建模的
struct
s非常相似,您将在名为的web门户中创建类似的对象。在将iCloud权利正确添加到您的应用程序ID后,您将可以使用此门户网站
在侧边栏中,您将看到“记录类型”。您可以在这里创建对象,而不需要任何代码。《快速入门指南》详细介绍了如何创建对象,也称为“记录类型”。(该对象的实例称为记录。)基本上,您需要创建与该对象的基本属性相对应的字段,但通常不编辑放置在记录名称字段中的唯一标识符。例如,您的个人
记录类型可能有名字
(类型字符串
)、姓氏
(类型字符串
)和年龄(类型Int
)
您的Home
记录类型可能有一个houseNumber
字段,类型为Int
CloudKit处理关系的方式与核心数据等本地存储解决方案略有不同。出于效率考虑,我们并不希望对象包含一组关联对象,因为获取一条街道
,然后需要获取每个房屋
ID,然后获取房屋
中的每个人
ID
因此,我们不是将房屋
对象数组放置在街道
上,而是将引用类型的字段(指向房屋
)放置在街道
记录类型上
因此,通过在CloudKit Dashboard中设置的新记录类型模型,您可以在代码中创建CKRecord
对象并设置与字段对应的属性。通过在代表房子里的人的每个CKRecord
上设置House
属性,可以告诉代表房子里的人的CKRecord
例如,您可以使用CKQuery
获取房屋,然后通过为所有“人员”对象创建CKQuery
来获取房屋,这些对象在其house
参考字段中具有与房屋对象对应的记录ID
请参阅《CloudKit快速入门指南》中的
编辑:在CloudKit Dashboard中设置引用字段的值时,该值将是您引用的记录的唯一ID名称。我使用CloudKit从仪表板发送和接收数据。只是引用的方式让我有点困惑。在你给我的链接页面的一半,添加参考字段,是在艺术品
和艺术家
之间进行参考。比如说,我想知道艺术家玛丽亚·鲁伊斯(Maria Ruiz)的年龄,但这些数据并不是随艺术品而来,而是随艺术家的数据而来。Maria Ruiz
会是另一个公开记录吗?事实上,现在我在写这篇文章,我相信参考文献需要反向工作?因此,我会为Person
创建一个记录,并将其引用到Home
抱歉,如果这些内容阅读起来很混乱,而且我要求的内容也不简洁。感觉上我知道我想知道的,但知道我想问的是很困难的。CloudKit中的记录是反向工作的,这是正确的。你们会在一个人身上有一个指向房子的参考字段。然后,您可以为给定房屋的所有“人员”创建查询。这很有意义。然后在person内部,我将在参考字段中输入房子的内容将与我存储房子的名称相同,对吗?是的,其中房子的“名称”是唯一ID,而不是您提供的任何自定义字符串。