2017-03-02 85 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