将领域中的单个键更新为模型

时间:2018-05-29 12:17:08

标签: ios swift model realm objectmapper

我正面临问题,我想更新我的领域模型中的单个密钥。

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删除整个模型并将其替换为新数据或者我可以获取该密钥并更新它。

我不想删除整个对象并插入新的我想要更新单个密钥。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

如果您有OrderOfDeliveryModel对象,则可以查询它以查找要更新的ItemsModel对象,然后将其更新到位(如果找到)。

let results = myOrders.items.filter("orderedQty == %@", 10)
if (results.count == 1) {
    results[0].orderedReceivedQty = 10
}