我正在尝试为体育比赛创建数据库,例如,在足球比赛中,我不仅要保存得分多少,还要保存他们得分的时间。最简单的方法当然是使用键值对,但我使用CloudKit并且我没有看到保存字典的方法。有可能这样做吗?
答案 0 :(得分:3)
我认为这个解决方案可以让你在app中获得最大的灵活性,就是创建另一个recordType。除了你的recordType'游戏'你也会有一个recordType' Goals'。在'目标' recordType你要创建一个CKReference字段,指向游戏'它属于。然后,您就可以为'目标'创建一个查询。 recordType,其中引用指向特定游戏。然后,您可以根据该查询的结果计算得分。
另一个可以更容易维护的解决方案是将字典转换为字符串并将整个字典放在一个文本字段中。例如,您可以使用NSJSONSerialization将其转换为json字符串。
答案 1 :(得分:-1)
您可以在CloudKit中使用NSKeyedArchiver和字段类型Bytes
:
将字典转换为数据:
let dict = [String: Set<String>]()
// convert dictionary to data object
let data: Data = NSKeyedArchiver.archivedData(withRootObject: dict)
// save to CloudKit ...
从数据转换为字典:
// let data: Data = object from CloudKit
let dict: [String: Set<String>] = NSKeyedUnarchiver.unarchiveObject(with: data) as? [String: Set<String>]