【问题标题】:Model with the same property name throws error: has properties that are declared multiple times in its class hierarchy具有相同属性名称的模型会引发错误:具有在其类层次结构中多次声明的属性
【发布时间】:2015-08-18 10:05:09
【问题描述】:

我有一个项目显示两种类型的文档,一种来自本地存储,另一种来自 Dropbox,所以我有两个模型,XXDocument 和 DBDocument。两种模型都具有名称、扩展名和上次更新时间等属性。我认为这是一种常见情况,但在启动领域抛出和错误:

由于未捕获的异常“RLMException”而终止应用程序,原因:“对象“DBDocument”具有在其类层次结构中多次声明的属性:“name”、“lastUpdated”、“extension””

处理这个问题的正确方法是什么?我是否在每个属性前面加上模型名称?

编辑

只是为了清除一些东西。我尝试使用超类来保存公共字段,并使用两个没有超类的单独类,这两种情况都不起作用。

案例 1: XX文档 - 姓名 - 扩大 - 最后更新

数据库文档 - 姓名 - 扩大 - 最近更新时间 - 转 - 文件路径

案例 2:

案例一:

基础文档 - 姓名 - 扩大 - 最后更新

XXDocument -> BaseDocument // XXDocument 类现在没有属性

DBDocument -> BaseDocument - 转 - 文件路径

【问题讨论】:

    标签: realm


    【解决方案1】:

    如果您在DBDocument 的超类中声明了属性,则不应在DBDocument 中再次声明它们,因为 Realm 会遍历类的类层次结构来收集模型类的属性集。

    【讨论】:

    • 我从两个单独的类 DBDocument、XXDocument 开始,后来我尝试使用一个 BaseDocument,它拥有公共属性并让 DBDocument 和 XXDocument 扩展 BaseDocument。这两种情况都会导致崩溃
    • 扩展基类没问题,只要确保你没有在子类中重新声明基类的属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 2019-02-06
    相关资源
    最近更新 更多