【问题标题】:Is my approach to readonly properties in Realm correct?我在 Realm 中读取只读属性的方法是否正确?
【发布时间】:2016-12-12 10:23:45
【问题描述】:

使用 Realm,我发现只读属性(根据文档和我的 earlier question)没有持久化,我认为这是出于优化原因。

由于我想保留只读属性(在这种特殊情况下,是从对象的创建日期派生的陈旧值),因此我决定使用空设置器。

  • 接口文件

    @property ( nonatomic, getter=isStale, setter=isReadonlyProperty:) bool stale;
    
  • 实现文件

    - (bool) isStale {
        return [self secretComputationMethod];
     }
    
    
    - (void) isReadonlyProperty:(bool)stale {
        // ignore argument
        NSLog(@"Property is readonly");
    }
    

这是一种可接受的方法吗?有没有更好的办法?我是否误解了 Realm 不保留只读属性的目的?

【问题讨论】:

    标签: objective-c realm access-modifiers


    【解决方案1】:

    您可以使用"Class extension"。在头文件中,将属性声明为readonly。在实现文件中,您可以覆盖属性声明,如下所示。

    TestObject.h

    @interface TestObject : RLMObject
    
    @property NSString *name;
    @property (readonly) BOOL state;
    
    @end
    

    TestObject.m

    @interface TestObject ()
    
    @property (readwrite) BOOL state;
    
    @end
    
    @implementation TestObject
    
    @end
    

    【讨论】:

      猜你喜欢
      • 2020-02-22
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 2011-03-07
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多