领域获取返回错误的结果

Realm fetch returning wrong results

我有两个 RLMObject 子类:Habit 和 Doable。 Doables 有一个 'habit' 属性(所以每个 Doable 可以有一个习惯,但是多个 Doable 可以属于同一个习惯)。习惯有一个主键 'id' 字段,它是一个 GUID。

我正在尝试根据特定习惯查找 Doables:

NSLog(@"habit.id: %@", habit.id)
// habit.id: 03736F78-BA78-4E43-B6E5-693D369D0E3D

RLMResults<Doable*>* doables = [Doable objectsWhere:@"habit = %@", habit];

但是当我查看返回结果时,返回的 Doables 是针对不同习惯的:

for (Doable* doable in doables) {
  NSLog(@"doable.habit.id: %@", doable.habit.id);
}

// doable.habit.id: 4DFD946A-8F56-4F21-9987-7B2DFC8B66DF
// doable.habit.id: 4DFD946A-8F56-4F21-9987-7B2DFC8B66DF
// doable.habit.id: 4DFD946A-8F56-4F21-9987-7B2DFC8B66DF

知道这里发生了什么吗?我是 运行 境界 0.95.2

谢谢!

这可能是由于 issue described here

作为目前的解决方法,我建议使用您的 id 属性,假设它适合识别对象:

RLMResults<Doable*>* doables = [Doable objectsWhere:@"habit.id = %@", habit.id];