我需要将我的数组保存到Core Data。
let array = [8, 17.7, 18, 21, 0, 0, 34]
该数组中的值和值的数量是可变的。
1.在NSManagedObject类中声明什么?
class PBOStatistics: NSManagedObject, Equatable {
@NSManaged var date: NSDate
@NSManaged var average: NSNumber
@NSManaged var historicAverage: NSNumber
@NSManaged var total: NSNumber
@NSManaged var historicTotal: NSNumber
@NSManaged var ordersCount: NSNumber
@NSManaged var historicOrdersCount: NSNumber
@NSManaged var values: [Double] //is it ok?
@NSManaged var location: PBOLocation
}
2.在我的.xcdatamodel中声明什么?
3.如何在我的实体中保存?(我使用MagicalRecord)
let statistics = (PBOStatistics.MR_createInContext(context) as! PBOStatistics)
statistics.values = [8, 17.7, 18, 21, 0, 0, 34] //is it enough?
6条答案
按热度按时间zfciruhq1#
好的,我做了一些研究和测试。使用可转换类型,解决方案很简单:
1.在NSManagedObject类中声明什么?
2.在我的.xcdatamodel中声明什么?
Transformable
数据类型。3.如何将其保存在我的实体中?
“您可以将NS数组或NSDictionary存储为可转换属性。这将使用NSCoding将数组或字典序列化为NSData属性(并在访问时适当地反序列化它)“-Source
或者,如果您想将其声明为二进制数据,请阅读simple article:
oaxa6hgo2#
SWIFT 3由于从SWIFT 3开始我们不再有实施文件,我们要做的是转到xcdatamodeld文件,选择实体和所需的属性(在本例中称为值)。将其设置为Transformable,并将其自定义类设置为
[Double]
。现在将其用作普通数组。ijnw1ujt3#
将数组转换为NSData
将NSData转换为数组
例如:https://github.com/kkvinokk/Event-Tracker
gwbalxhn4#
如果保持简单,将数组存储为字符串
试试这个:
对于其他数据类型:
k2arahey5#
将实体属性类型设置为“二进制数据”
将原始数组检索为:
就这样。
ao218c7q6#
下面的代码适用于我在CoreData中存储JSON的数组