在领域数据库中保留一个CLLocationCoordinate2D数组

时间:2016-06-26 12:49:48

标签: swift realm

我正在编写一个基于位置的应用程序,我需要在我的Realm模型中保存CLLocationCoordinate2D数组。最好的方法是什么?我应该为坐标定义一个新的模型对象,并使用List来保存该数组,还是有更好的方法呢?

1 个答案:

答案 0 :(得分:7)

正如您所说,最好的方法是创建自己的模型来存储坐标。您可以将名为Location的类作为CLLocationCoordinate2D的模型,其他Realm对象可以使用List<Location>Location来保留它。

定义Location类:

class Location: Object {
    dynamic var latitude = 0.0
    dynamic var longitude = 0.0

    /// Computed properties are ignored in Realm
    var coordinate: CLLocationCoordinate2D {
        return CLLocationCoordinate2D(
            latitude: latitude,
            longitude: longitude)
    }
}

持续存在的对象:

class SomeObject: Object {
    let coordinates = List<Location>()
}

您可以通过CLLocationCoordinate2D媒体访问coordinate。例如:

someObject.coordinates[0].coordinate