代码之家  ›  专栏  ›  技术社区  ›  huwr

领域写入事务失败,尽管处于事务中

  •  2
  • huwr  · 技术社区  · 7 年前

    messages 有一个新的 message :

    func addMessage(_ message: Message) {
        do {
            try Realm().write {
                self.messages.append(message)
            }
        } catch let error {
            print("could not add message due to error:\n\(error)")
        }
    }
    

    然而,我有一个例外 Cannot modify managed RLMArray outside of a write transaction

    3 回复  |  直到 7 年前
        1
  •  2
  •   cosinepenguin    7 年前

    你需要创建一个 Realm 对象,然后再应用 write 单元

    根据 GitHub documentation

    func addMessage(_ message: Message) {
        do {
            let realm = try! Realm()
            try! realm.write {
                self.messages.append(message)
            }
        } catch let error {
            print("Could not add message due to error:\n\(error)")
        }
    }
    

    希望有帮助!

        2
  •  2
  •   EpicPandaForce    7 年前

    您可以使用 let realm = try! Realm() 通过设置默认配置,使用自定义默认配置,请参阅 here :

      var config = Realm.Configuration()
    
      // Set this as the configuration used for the default Realm
      Realm.Configuration.defaultConfiguration = config
    
        3
  •  1
  •   huwr    7 年前

    问题是我用的是普通的 Realm 领域 每次我要写入该数据库时,使用相同配置的对象:

    let configuration = Realm.Configuration(
                    syncConfiguration: SyncConfiguration(user: user, realmURL: URL(string: "realm://127.0.0.1:9080/~/speciail")!)
                )
    self.realm = try! Realm(configuration: configuration)
    
    //now do the write transaction!