我需要存储这些值。
x 值 = 时间
y 值 1、y 值 2、y 值 3、...、y 值 10
因此,每次都有不同的 yValue 切片。这就是两者之间的关联。
我对 Core-Data 方法相当陌生,我听说将它们存储到数组中是不可能的。我不必查询它们,但我确实需要在给定 session 之后将它们存储在数据库中(假设超过 1000 个整体 - 这就是为什么我不想首先将它们全部放入 NSMutableArray 中)。
Core-Data 是解决这个问题的最实用方法吗?还是有更好的解决方案来处理如此大量的数据?
编辑: 到目前为止我的模型看起来像这样。
实体 1:时间片
属性:时间- float
关系:值(value)观
实体 2:值(value)观
属性:yValue1、yValue2、yValue3、...、yValue10 - float
最佳答案
这取决于每个 yValue 代表的变量类型,但看起来您可能会以比您需要的更尴尬的方式来处理它。您可以将它们放入一个数组中,然后将该数组存储在 Core Data 持久存储中的 NSData 属性中。如果您确实不需要查询它们,那么我将确保 yValue 类实现encodeWithCoder: 方法,如本问题所述:Converting a NSObject into NSData
然后,您可以创建这些对象的数组,并将整个数组存档在 NSData 对象中,并将其存储在实体的单个属性中。这可能是最有效的存储方式。您的核心数据模型将如下所示:
实体 - 时间输入
属性:时间 - NSNumber
属性:yValues - NSData
使用此核心数据模型,您可以查询特定时间(或一组时间),然后根据需要取消存档 NSData 对象。
如果您要创建一种“类型”的对象,关系会更好。一个典型的例子是公司->经理->员工范式。每个公司、经理和员工都是一个实体。公司与多个经理以及每个经理与多个员工之间将存在一对多关系。您还可以将每个员工分配给多个经理,等等。
关于ios - 核心数据和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864951/