存储排行榜分CoreData?

0

的问题

我想储存排行榜在CoreData(与最终CloudKit功能)上我的应用程序,并混淆了有关如何最好地这样做。

用户将能够创造和保存的多个排行榜。 每个排行榜将有一个创建日期、姓名、身份证,以及所有的分数为那个排行榜。 在核心数据模型(见下文),我加入所有这些属性作为排行榜的实体,并为这是你的属性,我把它作为不确定的。 我想制作一系列的我 score 结构。 然而,当我试着做的, newLearboard.scores = [Score]()Persistence.swift 文件告诉我,我需要增加分 as NSObject. 这是正确的方式做到这一点,或者将这个创意想不到的后果时,我去加/显示的排行榜的成绩吗?

这是你是一个结构的几个领域,例如名称和价值等。

我可能也将分组OrderedSet从迅速集合包。 这将创造其他问题?

enter image description here

cloudkit core-data swift swiftui
2021-11-22 17:20:15
1

最好的答案

0

核心数据不知道如何储存迅速结构。 工业化是试图帮助,但没有真正成功。 使用 as NSObject 不会做什么你想要的,因为一个结构不能类型转换到一个 NSObject.

核心数据的办法是添加第二个实体向该模型被称为 Score 然后添加一个核心数据要多关系 LeaderboardScore. 然后每 Score 将一个 NSManagedObject,这是一个子类的 NSObject.

它也可以把任何东西在核心数据,如果可以将其转换为一个实例 Data 第一次。 如果你使用 JSONEncoder 你可以把你的分数阵列 Data 和使用 Data 属性。 你会写代码进行编码,每次更新的成绩,并解码你每次读成绩。 如果你决定要做到这一点,请记住,尽管 JSONEncoder 使用 Codable, Codable 是不是有用的核心数据(它可以使用 NSCoding 但那是不一样的东西).

2021-11-22 18:08:49

转换到数据提供的安全编码的警告信息,它必须转化为串或者类似的东西。
lorem ipsum

不匹配我的经验。 什么我不涉及描述 NSCoding 在所有,这样的消息就打印有关的安全编码不会发生。
Tom Harrington

也许我们谈论的是不同的战术。 什么我指的是用在这个问题我联系上。 那的安全编码的消息采用数据来更多的和更多使用可转变的. 确切的错误消息的意见。
lorem ipsum

我被具体避免可转换性--这 JSONEncoder 不会的工作,无论如何。
Tom Harrington

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................