无法保存或加载对象

时间:2016-01-13 17:22:11

标签: swift realm

我是Realm的新手,也是我第一次使用它。我按照指南的每一步,将其插入我的项目中就好了。我创建了一个模型和一个函数来将对象插入到realm数据库中。

不知怎的,我不断收到错误。这就是我的工作。

我的功能

    do {

        let realm = try Realm()

        let proposition = Proposition()
        proposition.name = (currentProposition.name)
        proposition.energyType = (currentProposition.energyType)
        proposition.lifetime = (currentProposition.lifetime)
        proposition.saving = (currentProposition.saving)
        proposition.investing = (currentProposition.investing)

        if let _ = propositionsArray.indexOf(proposition) {
            try! realm.write {
                realm.delete(proposition)
                loadPropositions()
            }
        } else {
            try! realm.write {
                realm.add(proposition)
                loadPropositions()
            }
        }
    } catch let error as NSError {
        print("Add proposition error \(error)")
    }

这是我的模特

import RealmSwift
import Foundation

class Proposition : Object {

    dynamic var name: String = ""
    dynamic var energyType: String = ""
    dynamic var lifetime = 0
    dynamic var saving = 0
    dynamic var investing = 0

}

不知怎的,我不断收到以下错误

printscreen of console

有人能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:2)

您看到的错误表明您的应用定义的数据模型与您正在打开的Realm的数据模型不匹配。这通常是由于您更改了数据模型。在这种情况下,错误提到您已添加lifetimesavinginvesting属性,并将nameenergyType更改为不可为空。

有两种方法可以适应数据模型的更改:

  1. 如果您处于早期开发状态并且不需要支持旧数据模型,则只需删除Realm文件并重新开始使用空数据。
  2. 您可以执行迁移以让Realm更新Realm文件的数据模型。有关如何执行迁移的信息,请参阅Realm文档的Migrations部分。