'RLMException',原因:'Table has no columns'

'RLMException', reason: 'Table has no columns'

这个问题我查了相关文章。 Issue in adding data in Realm in iOS

似乎只发布了以前的 post 人们没有向变量添加动态。那不是我的情况。我根本找不到任何其他原因会失败。

Build target 12.2, swift version: Swift 5, realm version: swift-10.2.1

我的class:

class Person: Object {
    dynamic var id = UUID().uuidString
    dynamic var name = "" 
}

这就是我尝试添加到领域的方式

    let realm = try! Realm()
    let person = Person()
    person.name = "John Doe"
    try! realm.write {
        realm.add(person)
    }

如有任何指点或建议,我们将不胜感激。非常感谢阅读 post.

你还需要@objc attribute in your variables. Also see here

class Person: Object {
    @objc dynamic var id = UUID().uuidString
    @objc dynamic var name = "" 
}

编辑:

为了完整性,领域对象 classes 可以标记为 @objcMembers (Swift 4+),这将使所有 class 属性标记为 dynamic 由 Realm 管理。 See Property Attributes 在 Swift 指南中。