【问题标题】:iOS (Swift), Realm migration add a new property to store another realm objectiOS (Swift),Realm 迁移添加一个新属性来存储另一个领域对象
【发布时间】:2016-04-05 07:23:59
【问题描述】:

我在尝试更新现有 Realm 模型的迁移方案时遇到了一个奇怪的错误。
具体来说,我尝试通过添加一个存储另一个领域对象的属性来更新模型。
但是,无论我如何尝试(即使尝试删除以前的对象并将其替换为新对象),领域都会崩溃并出现以下错误“RMOHomebook.general 属性必须标记为可选”
有没有办法做到这一点?为什么我需要将该属性标记为可选,因为它永远不会是可选的。
非常感谢!

【问题讨论】:

    标签: ios swift2 realm


    【解决方案1】:

    RMOHomebook.general 属性是Object 的子类类型吗? RealmSwift 不支持创建可选的 Object 类型属性。这是目前Realm底层存储引擎的局限。

    一对一的关系必须是可选的

    https://realm.io/docs/swift/latest/#relationships

    另见领域对象定义备忘单。 https://realm.io/docs/swift/latest/#cheatsheet

    【讨论】:

    • 它不是容器的子类,它是 Object 的子类。啊,我了解一对一的关系和选项。然而,Realm 将它们实例化为 nil。更好的选择(或至少我选择做的)是将它添加到 List 属性并始终使用索引 0 处的对象。不是很整洁,但我想这将不得不这样做。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多