【问题标题】:Why is my property absent from the Realm object?为什么 Realm 对象中没有我的属性?
【发布时间】:2016-12-07 13:32:39
【问题描述】:

我正在使用 Realm 进行持久化,我无法访问标记为只读的属性。

更准确地说,我可以使用点表示法打印它们,但po object 仅显示读写属性,并且尝试使用objectsWhere 访问只读属性会崩溃。

我已经使用标准 NSObject 类进行了测试,问题消失了(显然是po),这让我想知道为什么/如果 Realm 忽略只读属性?

【问题讨论】:

    标签: ios objective-c realm


    【解决方案1】:

    没错!如果一个属性被标记为readonly,Realm 会忽略它并且不会在数据库文件中为它创建支持。这与将方法放在RLMObjectignoredProperties 方法中的隐式行为相同。它们被保留为传统的 Objective-C 属性。 :)

    如果您需要使属性在po object 命令中可见,您可以覆盖对象的- (NSString *)description 方法,并确保您的对象包含在打印的描述字符串中。

    由于readonly 属性不受 Realm 支持,因此您可以使用 objectsWhere 执行的操作非常有限,因为它使用自定义 Realm 查询引擎。您可能可以检查其他 Realm 属性是否与该属性匹配,但您无法使用该属性本身作为要搜索的项目来创建查询。

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-29
      • 2021-03-29
      • 2017-11-21
      相关资源
      最近更新 更多