如何在ios(Swift 3)中将MKPlacemark存储到Realm?

时间:2017-05-29 15:29:28

标签: ios swift realm

我想将MKPlacemark实例添加到Realm。我认为将Mkplacemark转化为CoreData的方法就是将数据类型设置为可转换的。但Realm只获得NSData。如何将自定义实例转换为NSData?

1 个答案:

答案 0 :(得分:0)

由于您无法在Realm中直接存储自定义类,并且没有内置的方法可以将MKPlacemark转换为NSData,因此您应该创建自己的Realm模型,该模型具有您需要的所有MKPlacemark属性。 例如,如果您只需要名称和位置,则可以创建此模型:

class Placemark: Object {
    dynamic var longitude: Double = 0.0
    dynamic var latitude: Double = 0.0
    dynamic var name:String? = nil
}

然后你可以创建自己的函数,将Placemark类的实例转换为MKPlacemark对象。

func getMKPlacemark(placemark: Placemark)->MKPlacemark{
    return MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: placemark.latitude,longitude: placemark.longitude))
}