我在 Realm 中处理只读属性的方法是否正确?

Is my approach to readonly properties in Realm correct?

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

因为我想保留只读属性(在这种特殊情况下,从对象的创建日期派生的陈旧值),我决定使用一个空的 setter.

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

您可以使用 "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