在 RealmSwift 中访问原始类型

Accessing primitive types in RealmSwift

我将 ObjectMapper 与 RealmSwift 一起使用,我的 class 看起来像:

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"];
    }
}

这个位置 class 在另一个 class Vehicle.swift 中被引用,它也是领域对象

的子class

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

let location : Location = vehicle.VehicleLocation!

打印 location 的值得到输出:

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 

知道会发生什么吗?

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

变化:

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

收件人:

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