2017-09-18 37 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

这就是我目前正在做的,但是当我阅读官方领域页面中的示例时,我想另一种方式可能存在,并且找不到任何示例......感谢您的帮助 –