如何将字典保存到cloudkit
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将字典保存到cloudkit相关的知识,希望对你有一定的参考价值。
我正在尝试创建体育比赛的数据库,例如,在足球比赛中,我不仅想保存进球数,而且要保存进球时间。当然,最简单的方法是使用键值对,但我使用的是CloudKit,但看不到保存字典的方法。可以这样做吗?
答案
我认为,为此应用提供最大灵活性的解决方案是创建另一个recordType。因此,除了您的recordType“游戏”之外,您还将拥有recordType“目标”。在“目标”记录类型中,您将创建一个CKReference字段,指向其所属的“游戏”。然后,您将能够为“目标”记录类型创建查询,其中引用指向特定游戏。然后,您可以根据该查询的结果计算分数。
另一种可能更易于维护的解决方案是,仅将字典转换为字符串,然后将整个字典放在一个文本字段中。例如,您可以使用NSJSONSerialization将其转换为json字符串。
另一答案
您可以在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>]
以上是关于如何将字典保存到cloudkit的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CloudKit API 将 PHLivePhoto 保存到 iCloud