【问题标题】:Core Data and Arrays核心数据和数组
【发布时间】:2013-02-13 23:02:56
【问题描述】:

我需要存储这些值。

x 值 = 时间

y-value1, y-value2, y-value3, ... , y-value10

所以每次都有这些不同的 yValue 切片。这就是两者之间的关联。

我对 Core-Data 方法相当陌生,我听说将它们存储到数组中是不可能的。我不必查询它们,但我确实需要在给定会话之后将它们存储在数据库中(假设超过 1000 个整体——这就是为什么我一开始不想将它们全部放在 NSMutableArray 中)。

Core-Data 是解决这个问题的最实用方法,还是有更好的解决方案来处理如此大量的数据。

编辑: 到目前为止,我的模型看起来像这样。


实体 1:时间片

属性:时间-浮动

关系:价值观


实体 2:价值观

属性:yValue1, yValue2, yValue3, ..., yValue10 - 浮点数

【问题讨论】:

  • 您应该显示更多代码以及您的模型。否则,这更像是猜测而不是回答。但是,我想您应该将数组值存储在单独的表中,并以一对多的关系引用数组的成员。
  • 请检查我的编辑。我还没有对此进行编码,但我只是想知道我是否在核心数据中的数组方面朝着正确的方向前进。

标签: ios objective-c core-data nsmutablearray


【解决方案1】:

这取决于每个 yValue 代表什么类型的变量,但看起来你可能会以一种比你需要的更尴尬的方式来处理它。您可以将它们放在一个数组中,然后将该数组存储在 Core Data 持久存储中的 NSData 属性中。如果您真的不需要查询它们,那么我会确保 yValue 类实现了 encodeWithCoder: 方法,如以下问题所述:Converting a NSObject into NSData

然后,您可以创建这些对象的数组,并将整个数组存档在 NSData 对象中,并将其存储在实体的单个属性中。这可能是最有效的存储方式。您的核心数据模型将如下所示:

实体 - 时间输入

属性:时间 - NSNumber

属性:yValues - NSData

使用此核心数据模型,您可以查询特定时间(或一组时间),然后根据需要取消归档 NSData 对象。

如果您要创建对象的“类型”,关系会更好。一个典型的例子是公司->经理->员工范式。每个公司、经理和员工都是一个实体。从公司到许多经理,从每个经理到许多员工,都会有一对多的关系。您还可以将每位员工分配给多个经理等。

【讨论】:

  • 感谢您的意见。我会试试这个:)
【解决方案2】:

Core Data 支持有序关系,我认为是从 iOS5 开始。编辑一对多关系时,只需在复选框中选择“有序”即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 2010-12-04
    相关资源
    最近更新 更多