2017-09-18 51 views
1

我有了狗境界RealmCollectionChange得到改變財產

class Owner: Object { 

    dynamic var name: String? 

    let list = List<RString>() 

} 

我添加了一個通知令牌的Owner

owners?.addNotificationBlock { [weak self] (changes: RealmCollectionChange) in 

    updateUI() 

} 

的問題是列表的列表屬性的「所有者」類,每當RString的屬性發生更改,並且其中一個所有者的列表中已更改RString時,將觸發此通知

我想要忽略RString對象發生的變化,並避免觸發通知

有沒有辦法像objectChange中那樣在collectionChanges中添加「ignoreoringProperties」?或者有其他的解決方法? 就像獲取已更改屬性的名稱並手動忽略它一樣?

我看到這個代碼的境界官方影片之一,但無法複製它collectionChanges

let token2 = state.addNotificationBlock(ignoringProperties: ["noisyProp"], 
            block: { change in 
    // handle change and avoid being notified for properties we don't care about 
}) 

source

感謝您的幫助

回答

1

.update情況下,RealmCollectionChange枚舉傳遞到您的更新通知處理程序中僅包含查詢返回的Results中包含的任何修改對象的索引。因此,截至目前,似乎阻止更新通知被特定屬性觸發是不可能的。

作爲替代方案,可以考慮通過創建一個單獨的Dog對象,並給它一個ownerId財產和刪除您的所有者對象狗list性質不同的造型您的數據。這樣,您可以避免在修改所擁有的Dog時,在您的Owner查詢結果上觸發更新通知。

+0

這就是我目前正在做的,但是當我閱讀官方領域頁面中的示例時,我想另一種方式可能存在,並且找不到任何示例......感謝您的幫助 –