将核心数据行从一个表(实体)映射到[CLLocation]数组?

时间:2016-10-26 09:41:26

标签: ios sqlite core-data

在我的ios应用程序中,我使用的是核心数据,我需要在表格中保存一系列“区域”,我将从JSON中获取。

“Region”对象的模型非常简单:

class Region : NSObject, NSCoding {

...

//MARK: -
//MARK: - Properties

fileprivate var id: String
fileprivate var name: String
fileprivate var boundaryPoints: [CLLocation]
fileprivate var midCoordinate: CLLocationCoordinate2D {
    return getPolygonFromBoundaryPoints().coordinate
}

init(id: String, name: String, boundaryPoints: [CLLocation]) {

    self.id = id
    self.name = name
    self.boundaryPoints = boundaryPoints

    super.init()
}


//MARK: -
//MARK: - NSCoding

...

//MARK: -
//MARK: - Getters and Setters

...

}

问题是我需要在一个记录如下的表中坚持这个:

地区表:

id |标题| [CLLocation]

在存储有关“Region”对象的信息时,将行映射到(lat,lng)点数组(在本例中为[CLLocation])的最佳解决方案是什么?因为“Region”对象模型包含一个边界点数组。

换句话说,我应该如何使用Core数据将具有数组属性的对象模型保存到sql? (对表的结构和关系感兴趣)

1 个答案:

答案 0 :(得分:0)

您需要将核心数据中的值存储为Transformable并使用值转换器。您可以在此处找到包含更多详细信息的教程:http://lextech.com/2013/01/core-data-transformable-attributes/