Ios 如何将字典保存到cloudkit

Ios 如何将字典保存到cloudkit,ios,dictionary,cloudkit,Ios,Dictionary,Cloudkit,我正在尝试为体育比赛创建一个数据库,例如,在足球比赛中,我不仅要保存进球的数量,还要保存进球的时间。当然,最简单的方法是使用键值对,但我使用的是CloudKit,没有找到保存字典的方法。有可能做到这一点吗?我认为解决这个问题的方法是创建一个其他记录类型,它将为您的应用程序提供最大的灵活性。所以除了你的记录类型“游戏”之外,你还应该有一个记录类型“目标”。在“目标”记录类型中,您将创建一个CKReference字段,该字段指向它所属的“游戏”。然后,您将能够创建“Goals”记录类型的查询,其中引

我正在尝试为体育比赛创建一个数据库,例如,在足球比赛中,我不仅要保存进球的数量,还要保存进球的时间。当然,最简单的方法是使用键值对,但我使用的是CloudKit,没有找到保存字典的方法。有可能做到这一点吗?

我认为解决这个问题的方法是创建一个其他记录类型,它将为您的应用程序提供最大的灵活性。所以除了你的记录类型“游戏”之外,你还应该有一个记录类型“目标”。在“目标”记录类型中,您将创建一个CKReference字段,该字段指向它所属的“游戏”。然后,您将能够创建“Goals”记录类型的查询,其中引用指向特定游戏。然后,您可以根据该查询的结果计算分数

另一个更容易维护的解决方案是将字典转换为字符串,并将整个字典放在一个文本字段中。例如,您可以使用NSJSONSerialization将其转换为json字符串

您可以在CloudKit中使用和字段类型
Bytes

将字典转换为数据:

let dict=[String:Set]()
//将字典转换为数据对象
let data:data=NSKeyedArchiver.archivedData(withRootObject:dict)
//保存到CloudKit。。。
将数据转换为字典:

//让data:data=CloudKit中的对象
让dict:[String:Set]=NSKeyedUnarchiver.unarchiveObject(with:data)作为?[字符串:设置]