我正面临问题,我想更新我的领域模型中的单个密钥。
Array Model -> Array Model - Key
class OrdersOfDeliveryModel: Object, Mappable {
dynamic var id : String?
dynamic var transportCost : String?
var items = List<ItemsModel>()
required convenience init?(map: Map) {
self.init()
}
override class func primaryKey() -> String? {
return "id"
}
func mapping(map: Map) {
id <- map["id"]
transportCost <- map["transportCost"]
items <- (map["items"], ListTransform<ItemsModel>())
}
}
class ItemsModel : Object, Mappable{
dynamic var orderedQty : Int = 0
dynamic var orderedReceivedQty : String?
required convenience init?(map: Map) {
self.init()
}
override class func primaryKey() -> String? {
return nil
}
func mapping(map: Map) {
var dictWeightageqty = [String:Any]()
dictWeightageqty <- map["weightageQty"]
orderedQty = dictWeightageqty["ordered"] as? Int ?? 0
orderedReceivedQty = dictWeightageqty["received"] as? String
}
}
请考虑这个例子。
我想更新orderedReceivedQty
中的ItemsModel
密钥但是如何在领域中找到该密钥。但我的ItemsModel
取决于OrderOfDeliveryModel
,我可以使用主键找到它。
我有办法像使用单个ID删除整个模型并将其替换为新数据或者我可以获取该密钥并更新它。
我不想删除整个对象并插入新的我想要更新单个密钥。
请帮帮我。
答案 0 :(得分:0)
如果您有OrderOfDeliveryModel
对象,则可以查询它以查找要更新的ItemsModel
对象,然后将其更新到位(如果找到)。
let results = myOrders.items.filter("orderedQty == %@", 10)
if (results.count == 1) {
results[0].orderedReceivedQty = 10
}