Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将核心数据行从一个表(实体)映射到[CLLocation]的数组?_Ios_Sqlite_Core Data - Fatal编程技术网

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

Ios 将核心数据行从一个表(实体)映射到[CLLocation]的数组?,ios,sqlite,core-data,Ios,Sqlite,Core Data,在我的ios应用程序中,我使用的是核心数据,我需要将从JSON获得的“区域”数组保存在一个表中 “区域”对象的模型非常简单: class Region : NSObject, NSCoding { ... //MARK: - //MARK: - Properties fileprivate var id: String fileprivate var name: String fileprivate var boundaryPoints: [CLLocation] fileprivate

在我的ios应用程序中,我使用的是核心数据,我需要将从JSON获得的“区域”数组保存在一个表中

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

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 | title |[CLLocation] 在存储有关“区域”对象的信息时,将一行映射到(lat,lng)点阵列(在本例中为[CLLocation])的最佳解决方案是什么?因为“区域”对象模型包含一组边界点


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

您需要将核心数据中的值存储为可转换的,并使用值转换器。您可以在此处找到更详细的教程:

您需要将核心数据中的值存储为可转换的,并使用值转换器。您可以在此处找到包含更多详细信息的教程:

您需要一个相关实体来存储CLLocation Lattude和longitude值,并在区域和位置之间使用1对多关系您需要一个相关实体来存储CLLocation Lattude和longitude值,并在区域之间使用1对多关系地点谢谢你分享。如果不使用此方法和使用上述方法,是否存在任何性能/开销问题?如果我必须在区域实体中本地存储数千条记录?请注意,我是核心数据的初学者。Paulw11所说的关系解决方案更容易调试,因为您可以使用SQLite资源管理器(如Base())查看应用程序运行之外的坐标,但我很有信心,我的解决方案会更快,因为它不必有另一个总是伴随着开销的关系。Paulw11解决方案的另一个问题是,您的模型必须具有单独的经度和纬度,通过值转换器,您可以直接使用CLLocation。这两种解决方案都有利弊,所以这取决于您!谢谢分享。如果不使用此方法和使用上述方法,是否存在任何性能/开销问题?如果我必须在区域实体中本地存储数千条记录?请注意,我是核心数据的初学者。Paulw11所说的关系解决方案更容易调试,因为您可以使用SQLite资源管理器(如Base())查看应用程序运行之外的坐标,但我很有信心,我的解决方案会更快,因为它不必有另一个总是伴随着开销的关系。Paulw11解决方案的另一个问题是,您的模型必须具有单独的经度和纬度,通过值转换器,您可以直接使用CLLocation。这两种解决方案都有利弊,所以这取决于您!