我希望在分配父对象中的属性并且通知结果包含所有已安排的子项时收到通知
以下是我所指的代码行:
realm.objects(Parent.self).filter("state = Error").addNotificationBlock { ... }
目前我收到通知,但我无法确定它适用的对象。这是可能的还是我需要通过每个?
谢谢, 麦克
答案 0 :(得分:0)
根据Realm网站上有关Collection Notifications的文档,您可以从查询中获取Results
对象并为其分配通知块。每当在该结果集中更改对象(包括新添加,修改或删除)时,该块将使用已更改的特定索引触发。
// Observe Results Notifications
notificationToken = results.addNotificationBlock { [weak self] (changes: RealmCollectionChange) in
guard let tableView = self?.tableView else { return }
switch changes {
case .initial:
// Results are now populated and can be accessed without blocking the UI
tableView.reloadData()
break
case .update(_, let deletions, let insertions, let modifications):
// Query results have changed, so apply them to the UITableView
tableView.beginUpdates()
tableView.insertRows(at: insertions.map({ IndexPath(row: $0, section: 0) }), with: .automatic)
tableView.deleteRows(at: deletions.map({ IndexPath(row: $0, section: 0)}), with: .automatic)
tableView.reloadRows(at: modifications.map({ IndexPath(row: $0, section: 0) }), with: .automatic)
tableView.endUpdates()
break
case .error(let error):
// An error occurred while opening the Realm file on the background worker thread
fatalError("\(error)")
break
}
}
我不确定你们这里的孩子是什么意思。如果这意味着您的List
对象中有Parent
属性,那么您将无法获得有关Parent
对象中哪些子项发生更改的详细索引信息,但您还是会仍然获取子对象所属的Parent
对象本身的索引。