【问题标题】:Crashing on writing to realm database写入领域数据库时崩溃
【发布时间】:2018-08-25 15:04:16
【问题描述】:

我有一个待办事项应用程序,我正在使用领域来存储数据。我已经编写了用于写入数据库和检索的数据库代码。

当我第一次输入数据库时​​,一切正常,数据被输入数据库,但是当我尝试将另一个对象输入数据库时​​,

由于未捕获的异常“RLMException”而终止应用,原因:“尝试在写入事务之外修改对象 - 首先在 RLMRealm 实例上调用 beginWriteTransaction。”

func createCategory(name: String, color: String, isCompleted: Bool) -> Void {
    category.name = name
    category.color = color
    category.isCompleted = false
    DBManager.instance.addData(object: category)
}

数据库管理器

func addData(object: CategoryModel)   {
    try! database.write {
        database.add(object, update: true)
        print("Added new object")
    }
}

添加类别 IBaction

CategoryFunctions.instance.createCategory(name: name, color: color, isCompleted: false)

【问题讨论】:

  • 也许先解决这个问题category.isCompleted = isCompleted ?

标签: ios swift realm


【解决方案1】:

这个

.createCategory(name: name, color: color, isCompleted: false)

更改已添加对象的属性并尝试重新编写它,您需要创建一个新对象,可能您需要类似的东西

func createCategory(name: String, color: String, isCompleted: Bool) -> Void {
        let category = Category()
        category.name = name
        category.color = color
        category.isCompleted = isCompleted
        DBManager.instance.addData(object: category)

        // or
        let category = Category(name:name,color:color,isCompleted:isCompleted)
        DBManager.instance.addData(object: category)

    }

【讨论】:

【解决方案2】:

创建一个新类别:

func createCategory(name: String, color: String, isCompleted: Bool) {
    let newCategory = Category(name: name, color: color, isCompleted: isCompleted)
    DBManager.instance.addData(object: newCategory)
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多