Realm嵌套对象不能具有与perant相同的属性名称

时间:2016-08-21 14:19:52

标签: ios objective-c realm

我有一个名为 JVTRoom 的模型 它代表一个会话室,其主键是 roomId

@interface JVTRoom : RLMObject
@property NSString* roomId; // PK
@property JVTInteraction *recentInteraction;

还有一个名为 JVTInteraction 的模型,它代表了房间内的交互。 每次互动都有一个名为 roomId 的属性,因此您可以引用该房间进行互动。

服务器最近添加到房间模型, recentInteraction

@interface JVTRoom : RLMObject
@property NSString* roomId;
@property JVTInteraction *recentInteraction;

现在,当我添加了此属性后,当我使用Realm调用 addOrUpdateObjectsFromArray 时,房间值不再保存。

仅更新互动。 当我从房间中删除交互属性时,所有值都保存为已删除。

这是我进行交易的方式:

        [[RLMRealm defaultRealm] beginWriteTransaction];
        RLMRealm *realm = [RLMRealm defaultRealm];
        [realm addOrUpdateObjectsFromArray:rooms];
        [[RLMRealm defaultRealm] commitWriteTransaction];

正如我所看到的,这是一个问题,因为它们都有一个名为roomId的字符串属性,并且它导致了索引的一些问题。

所以我现在的解决方案是将其添加到JVTRoom:

+ (NSArray *)ignoredProperties
{
    return @[@"recentInteraction"];
}

忽略 recentInteraction ,它有效。

有没有人遇到这个问题,并设法解决它而不重命名为属性?

0 个答案:

没有答案