私はこのJSONを持っています:
{
"location": {
"position": {
"type": "Point",
"coordinates": [
45.579553,
11.751805
]
}
}
}
これは別の JSON オブジェクトに属します。
Realm と ObjectMapper でマップしようとするとcoordinates
、double の配列であるプロパティをマップするのが難しいことがわかりました。
それがドキュメントを読むことであり、SOには意味があるようです:
import Foundation
import RealmSwift
import ObjectMapper
class Coordinate:Object, Mappable{
dynamic var latitude:Double = 0.0
dynamic var longitude:Double = 0.0
required convenience init?(_ map: Map) {
self.init()
}
func mapping(map: Map) {
latitude <- map[""]
longitude <- map[""]
}
}
class Position: Object, Mappable{
var type:String = ""
var coordinates:Coordinate?
required convenience init?(_ map: Map) {
self.init()
}
func mapping(map: Map) {
type <- map["type"]
coordinates <- map["coordinates"]
}
}
class Location: Object, Mappable{
dynamic var id = ""
dynamic var position:Position?
dynamic var desc = ""
override static func indexedProperties()->[String]{
return["id"]
}
override class func primaryKey() -> String? {
return "id"
}
required convenience init?(_ map: Map) {
self.init()
}
func mapping(map: Map) {
id <- map["id"]
position <- map["position"]
}
}
ただし、「座標」オブジェクトをマップする方法を理解するのに行き詰まっています。この問題は ObjectMapper 自体とは何の関係もないことに注意してください。これは、Double の配列を Realm モデルのプロパティに割り当てる方法に関する問題です。