swift пропадают данные из бд realm в другой стране

Я использую realm в качестве бд для своего приложения (to-do list), все работает ок, НО как-то раз я прилетел в другую страну и заметил, что записи в бд пустые (приложение выдает пустой список), по прилету обратно в свою страну все нормализовалось. Сейчас я опять в другой строне и ситуация повторяется почему-то бд дает пустой список, можете, пожалуйста, объяснить почему так происходит и как исправить ?

Пример вывода

var dbToDoList = DBrealmToDoList()
var arrayToDoList: Results<RealmToDoList> {
    get {
        return dbToDoList.getArray()
    }
}

let current = arrayToDoList.filter { (_todo) -> Bool in
    return _todo.date == date
}.first
self.selectedDate = date
if current != nil {
    self.selectedLists = current?.lists
    self.selectedListsSorted = self.selectedLists?.sorted(by: { (val, val2) -> Bool in
        return (!val.value && val2.value)
        })
    
}

И далее в tableView вывожу данные со списка selectedListsSorted

Вот класс работы с бд

class RealmToDoList: Object {
    @objc private dynamic var dictionaryData: Data?
    var lists: [String: Bool] {
        get {
            guard let dictionaryData = dictionaryData else {
                return [String: Bool]()
            }
            do {
                let dict = try JSONSerialization.jsonObject(with: dictionaryData, options: []) as? [String: Bool]
                return dict!
            } catch {
                return [String: Bool]()
            }
        }

        set {
            do {
                let data = try JSONSerialization.data(withJSONObject: newValue, options: [])
                dictionaryData = data
            } catch {
                dictionaryData = nil
            }
        }
    }
    
    @objc dynamic var date : Date?
}

class DBrealmToDoList {
    var realm: Realm!
    
    func write(_ data: RealmToDoList) throws -> Bool {
        var result = false
        
        if (realm != nil) {
            try! realm.write {
                realm.add(data)
                result = true
            }
            return result
        } else {
            throw RuntimeError.NoRealmSet
        }
        
    }
    
    func getArray() -> Results<RealmToDoList> {
        return realm.objects(RealmToDoList.self)
    }
    
    func delete(_ data: RealmToDoList) throws -> Bool {
        var result = false
        if (realm != nil) {
            try! self.realm.write {
                self.realm.delete(data)
                result = true
            }
            return result
        } else {
            throw RuntimeError.NoRealmSet
        }
    }
    
    func update(ofType:Object,value:AnyObject,key:String)->Bool{
        do {
            let realm = try Realm()
            try  realm.write {
                ofType.setValue(value, forKeyPath: key)
            }
            
            return true
        }catch let error as NSError {
            fatalError(error.localizedDescription)
        }
        
        
    }
    
    func filter(id:Int) -> RealmToDoList? {
        let match = realm.objects(RealmToDoList.self).filter("id == %@",id).first
        return match
    }
  
    func newToDoList(date : Date?,lists: [String: Bool]) -> RealmToDoList{
        let pill = RealmToDoList()
        pill.date = date
        pill.lists = lists
        return pill
    }
}

п.с я сомневаюсь, что дело в бд, но не могу понять в чем, тк фильтр по странам итп я не делаю


Ответы (0 шт):