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