【问题标题】:Store data using Realm, add object clears objects on list使用 Realm 存储数据,添加对象清除列表中的对象
【发布时间】:2016-04-25 13:02:37
【问题描述】:

我刚开始使用 Realm 也使用 ObjectMapper 来保存数据。我遇到的问题是:

ObjectInList 最初是 id = 0 和 symbol = "CA",映射后它有不同的数据,如 id = 0,symbol = "First Name, Last name"。

let database开始之前我已经将数据存储在profileDictionary变量中,在database.add(profileDictionary)之后对象列表的内容更改为初始数据喜欢

id = 0

symbol = "CA"

可怕的是变量testInt 没有改变它的值并且等于10。

感谢您的建议!

class ObjectInList: Object, Mappable{
    dynamic var id : Int = 0
    dynamic var symbol : String = "CA"

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

    func mapping(map: Map) {
        id <- map["id"]
        symbol <- map["symbol"]
    }
}

class ProfileDictionaries: Object, Mappable{
    dynamic var testInt : Int = 20
    var states = List<ObjectInList>()

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

    func mapping(map: Map) {
    // ObjectMapper does not support List<Object>() collections.
        testInt = 10
        var array: [ObjectInList] = []
        array <- map["states"]
        states.appendContentsOf(array)
    }
}

SwiftEventBus.onMainThread(self, name: Constants.ServerResponse.PROFILE_DICTIONARIES_SUCCESS){
  result in

  let profileDictionary  = result.object as? ProfileDictionaries ?? ProfileDictionaries()
   self.removeDatabase()

   do{
       let database = try Realm()
       try! database.write {
       database.add(profileDictionary)
       let localProfileDictionaries = database.objects(ProfileDictionaries)
   }
   catch let error as NSError{
       print(error)
       self.removeDatabase()
   }
}

【问题讨论】:

    标签: ios swift realm


    【解决方案1】:

    这篇文章对我有帮助 - Swift Realm: After writing transaction reference set to nil

    我们应该在 LLDB 调试器中使用 PO 而不是 P - 数据存储正确!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2020-09-30
      • 2021-06-27
      • 2017-08-12
      相关资源
      最近更新 更多