在RealmSwift

时间:2016-03-17 08:38:08

标签: swift objectmapper realm

我正在使用ObjectMapper和RealmSwift,我的类看起来像:

class Location: Object, Mappable {
    var Lat : Float = 0
    var Lng : Float = 0

    required convenience init?(_ map: Map) {
        self.init()
    }

    func mapping(map: Map) {
        Lat <- map["Lat"];
        Lng <- map["Lng"];
    }
}

此Location类在另一个类Vehicle.swift中引用,该类也是Realm Object的子类

我可以使用以下行访问车辆的位置:

let location : Location = vehicle.VehicleLocation!

打印位置值可以得到输出:

location is  Location {
    Lat = 49.24122;
    Lng = -123.1153;
}

我使用Realm浏览器打开了realm数据库,其值与数据库中的值相对应。

但是,当我尝试访问LatLng值时,我收到了0.0。我试图使用以下方法访问这些:

let lat : Float = vehicle.VehicleLocation!.Lat
let lng : Float = vehicle.VehicleLocation!.Lng 

知道可能会发生什么吗?

1 个答案:

答案 0 :(得分:2)

所有存储的Realm属性必须定义为dynamic

变化:

var Lat : Float = 0
var Lng : Float = 0

要:

dynamic var Lat : Float = 0
dynamic var Lng : Float = 0