在Realm通知上更改过滤器

时间:2017-01-31 06:59:30

标签: ios swift swift3 realm

我想知道是否可以在结果集上使用相同的通知块但是更改过滤器?例如:我有两个查询,一个是isDelivered = true,另一个是isDelivered = false。我想有一个具有不同过滤器的Resultset,然后根据我是否要查看已交付或未交付的项目来切换结果集。这是可能的还是我需要为此创建两个通知块?

1 个答案:

答案 0 :(得分:0)

无法追溯更改用于创建Realm Results对象的谓词查询。但是可以将相同的通知块附加到两个单独的Results实例,以便共享处理逻辑。

let notificationBlock: ((RealmCollectionChange) -> Void) = { changes in 
   // Perform common update logic in here
}

let deliveredObjects = realm.objects(MyObject.self).filter("isDelivered = true")
let delieveredNotificationToken = deliveredObjects.addNotificationBlock(notificationBlock)

let undeliveredObjects = realm.objects(MyObject.self).filter("isDelivered = false")
let undelieveredNotificationToken = undeliveredObjects.addNotificationBlock(notificationBlock)