如何在 Swift 中每天存储各种类型的数据?

Posted

技术标签:

【中文标题】如何在 Swift 中每天存储各种类型的数据?【英文标题】:How to store various types of data each day in Swift? 【发布时间】:2019-10-17 13:37:20 【问题描述】:

我想每天在CoreData中存储各种信息如下:

第 1 天:字符串、整数、整数、双精度、布尔值 day2:字符串、整数、整数、双精度、布尔 第 3 天:.... 长达几个月。

由于信息的数量和类型,我计划将其保存在 CoreData 中,但我找不到最好的方法。我正在考虑使用数组,但由于它不能包含各种类型,所以最好的方法是什么? 通常,用户每天都会输入此类信息,在界面上选择实际日期并输入他的所有输入。

我正在使用 Xcode。

【问题讨论】:

【参考方案1】:

你为什么不在CoreData 中使用CoreData Entity 而不是Array?像实体名称:Day和day的属性是:stringintintdouble强>,布尔。我认为这比将其保存到数组中更清楚。如果您只想要 7 个保存的数据,您可以对其进行排序并删除第 8 个(最后一个)。

【讨论】:

是的,看起来更简单!因此,使用您提到的所有属性,但我当然还需要添加 Date 属性。谢谢 您可以将日期存储为字符串,只需转换为字符串即可存储。当您加载它时,您只需将其解析为日期【参考方案2】:

您必须在一定程度上设计您的数据模型。这有很多原因,它会让你的生活更轻松。

我会做什么: 确保您清楚了解Day 中可能存储的数据类型 使用字段(属性)创建模型(实体)。型号:Day 字段:All possible dataPoint that can be stored and retrieved and displayed

例如,您的实体名为 Day 你的属性:

thoughtOfTheDay: String?
peopleAnnoyedMeToday: Int16?
waterTakenInLiters: Float?
happyToday: Bool?
...

这样您就可以清楚地了解可以保存和检索的内容,这样您就可以每天检查并使用不为零的数据。

【讨论】:

我可能误解了这个问题。这很简单,然后由@Daveloper 回答 好的,谢谢!我问自己的问题是我应该创建一个具有属性(Date、String、Int、Bool)的实体,还是创建两个链接在一起的实体,一个名为 DateInput(属性:来自日期选择器视图的日期)和第二个实体输入(具有所有属性: String、Int、Bool 等)——我是 CoreData 的新手,拥有多个实体似乎很快增加了编码的复杂性。你的看法是什么? 正如我之前所说,您需要在一定程度上设计数据模型。已经怀疑您将这一天用作模型。除了与日历相关的事情之外,“一天”并没有什么真正的特征,而你有日历。你的模型应该被称为它是什么。比如天气;这是在“一天”,是的,但它本身不是一天。或具有“日期”的消息,但在这两种情况下,它都应该是日期属性。日期模型可以包括全球一天的统计数据和 kpi。因此,它们有多种模型。并让他们有日期属性。

以上是关于如何在 Swift 中每天存储各种类型的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何引用在不同的 .swift 文件中定义的数据类型?

如何使用 NSUserDefaults 在 Swift 中存储自定义类数组?

如何在json swift中过滤内容

如何在swift 3中每天在特定时间触发本地通知

全局变量/常量如何在 swift 中变得懒惰

如何在 Swift 中将数据转换为 Doubles、Ints 和 Strings 等类型?