как вставить большой ответ API в Realm DB, вставить в фоновый поток и обновить пользовательский интерфейс таблицы? - PullRequest
0 голосов
/ 07 августа 2020
class func insertProductCombinationInDd(objects: [[String: Any]]) {
        var objs = [[String: Any]]()
        for  var object in objects {
            let attributs = object["attributes"] as? [[String: Any]]
            let strAttribute = OAxeBaseViewController.jsonString(from: attributs ?? [:])
            object["attributes"] = strAttribute
            objs.append(object)
        }
        if !objs.isEmpty {
             do {
                let realm = try Realm()
            
                try realm.write {
                    for combi in objs {
                        let combination = ProductCombination()
                        combination.id = combi["id"] as? String ?? ""
                        combination.productId = combi["product_id"] as? String ?? ""
                        combination.orgId = combi["org_id"] as? String ?? ""
                        combination.attributes = combi["attributes"] as? String ?? ""
                        combination.mrp = combi["mrp"] as? Double ?? 0.0
                        combination.quantity = combi["quantity"] as? Int ?? 0
                        combination.updatedAt = combi["updation_time"] as? Int ?? 0
                        combination.active = combi["active"] as? Bool ?? false
                        combination.categoryId = combi["category_id"] as? String ?? ""
                        realm.add(combination, update: .modified)
                    }
                }
             } catch {}
            
        }
    }

Я написал такой код, как этот, любой другой хороший подход вставляет данные в фоновый поток и обновляет пользовательский интерфейс аналогичным образом. как обновить пользовательский интерфейс сразу при вставке или обновлении объекта области c?

...