gpt4 book ai didi

ios - Realm 中的双嵌套数组(快速)

转载 作者:行者123 更新时间:2023-11-29 00:57:34 28 4
gpt4 key购买 nike

我有这个 JSON:

{
"location": {
"position": {
"type": "Point",
"coordinates": [
45.579553,
11.751805
]
}
}
}

属于另一个 JSON 对象。

尝试用 Realm 和 ObjectMapper 映射它,我发现很难映射 coordinates 属性,它是一个 double 组。

这就是阅读文档和 S.O.似乎有道理:

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 模型中的属性的问题。

最佳答案

我能够按照这个问题中的指示解决这个问题:

https://github.com/realm/realm-cocoa/issues/1120 (学分@jazz-mobility)

class DoubleObject:Object{

dynamic var value:Double = 0.0

}

class Position: Object, Mappable{

var type:String = ""
var coordinates = List<DoubleObject>()

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

func mapping(map: Map) {
type <- map["type"]

var coordinates:[Double]? = nil
coordinates <- map["coordinates"]


coordinates?.forEach { coordinate in
let c = DoubleObject()
c.value = coordinate
self.coordinates.append(c)
}

}

}

关于ios - Realm 中的双嵌套数组(快速),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37467511/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com