如何保存阵列到CoreData? [英] How to save Array to CoreData?
问题描述
我要我的数组保存到核心数据。
让阵列= [8,17.7,18,21,0,0,34]
这是内部数组的值,和值的数量是可变的。
1。做什么我宣布我的NSManagedObject类中?
类PBOStatistics:NSManagedObject,Equatable {
@NSManaged VAR日期:NSDate的
@NSManaged VAR平均:NSNumber的
@NSManaged VAR historicAverage:NSNumber的
@NSManaged VAR总:NSNumber的
@NSManaged VAR historicTotal:NSNumber的
@NSManaged VAR ordersCount:NSNumber的
@NSManaged VAR historicOrdersCount:NSNumber的
@NSManaged VAR值:[双] //可以吗? @NSManaged VAR位置:PBOLocation}
2。什么我宣布我.xcdatamodel里?
3。如何保存这在我的实体?(我用MagicalRecord)
让统计=(PBOStatistics.MR_createInContext(上下文)作为!PBOStatistics)
statistics.values = 8,17.7,18,21,0,0,34] //是否足够?
好吧,我做了一些研究和试验。使用的可变形类型,解决方法很简单:
1。做什么我宣布我的NSManagedObject类中?
@NSManaged VAR值:[NSNumber的] // [双]也可
2。什么我宣布我.xcdatamodel里?
可变形
数据类型。
3。如何保存这在我的实体?
统计!.values = [23,45,567.8,123,0,0] //只是这
你可以存储一个NSArray或一个NSDictionary作为一个可转换的属性。这将使用NSCoding序列化数组或字典一个NSData属性(并适当地反序列化时访问) - <一个href=\"http://stackoverflow.com/questions/1562676/best-practice-array-dictionary-as-a-core-data-entity-attribute\">Source
块引用>或者如果你想将其声明为二进制数据,然后阅读的简单的文章:
I need to save my array to Core Data.
let array = [8, 17.7, 18, 21, 0, 0, 34]
The values inside that array, and the number of values are variable.
1. What do I declare inside my NSManagedObject class?
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. What do I declare inside my .xcdatamodel?
3. How do I save this in my Entity? (I use MagicalRecord)
let statistics = (PBOStatistics.MR_createInContext(context) as! PBOStatistics) statistics.values = [8, 17.7, 18, 21, 0, 0, 34] //is it enough?
解决方案Ok, I made some research and testing. Using Transformable type, solution is simple:
1. What do I declare inside my NSManagedObject class?
@NSManaged var values: [NSNumber] //[Double] also works
2. What do I declare inside my .xcdatamodel?
Transformable
data type.3. How do I save this in my Entity?
statistics!.values = [23, 45, 567.8, 123, 0, 0] //just this
"You can store an NSArray or an NSDictionary as a transformable attribute. This will use the NSCoding to serialize the array or dictionary to an NSData attribute (and appropriately deserialize it upon access)" - Source
Or If you want to declare it as Binary Data then read this simple article:
这篇关于如何保存阵列到CoreData?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!