2017-03-02 87 views
0

我遇到了Realm Objective-C v2.4.3中的问题,其中如果修改不影响整体查询结果,则集合通知块不会触发修改。Realm Collection通知不会触发更新,不会影响查询

给出一个简单的例子。

A Feed object and FeedItem object。 Feed有一个items RLMArray属性。

RLMArray<FeedItem *><FeedItem> *items 

我有一个集合通知块设立RLMResults其中查询是:如果我从0修改状态属性

[Feed objectsWhere:@"ANY items.status > 0"] 

插入变化将触发 - 如果我> 1.将缺失有一个查询的上限,它移出了。但是,继续匹配查询的FeedItem状态属性的任何更改(例如从1到2修改它)都不会触发通知更改块,因为整个查询结果不受此更改的影响。

我会预料到这个修改会属于收集文档中提到的修改吗?

  • 你收到通知,只要修改一个对象 的性质发生了变化,这是以前收集的一部分,仍然是它 一部分。

  • 您修改属于该人的狗的年龄属性。

  • 这使得可以离散控制动画和你的UI里面的内容做 视觉更新,而不是每个 通知发生时随意重装一切。

我思念的东西来获取此功能工作? CollectionView的数据源是RLMResults,我想重新加载单个的CollectionViewCell以反映对FeedItem状态的更新。

+0

这似乎是在领域中的错误评论两个现有的境界github上的问题。你愿意在我们的GitHub问题跟踪器(https://github.com/realm/realm-cocoa/issues)上提交一张票,并且/或者发送一个演示项目,将此问题复制到[email protected]? – AustinZ

+1

谢谢@AustinZ。我评论了两个存在的问题。 https://github.com/realm/realm-cocoa/issues/4305#issuecomment-283688989和https://github.com/realm/realm-cocoa/issues/3885#issuecomment-283274197 –

+0

非常棒!抱歉不提前通知他们。 – AustinZ

回答

0

在我身边有通过增加一个lastModified属性Feed,然后FeedItem作出改变,当我更新上次修改使用的反比关系工作的同时。

self.feed.lastModified = [NSDate date];

不是很大,但它触发的集合通知的修改变化这就是我以后。

很高兴接受另一个有更好实现方法的答案。

还发现我已经在

https://github.com/realm/realm-cocoa/issues/4305#issuecomment-283688989

https://github.com/realm/realm-cocoa/issues/3885#issuecomment-283274197