如何将字典保存到cloudkit

问题描述 投票:1回答:2

我正在尝试创建体育比赛的数据库,例如,在足球比赛中,我不仅想保存进球数,而且要保存进球时间。当然,最简单的方法是使用键值对,但我使用的是CloudKit,但看不到保存字典的方法。可以这样做吗?

ios dictionary cloudkit
2个回答
4
投票

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

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


0
投票

您可以在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>]
© www.soinside.com 2019 - 2024. All rights reserved.