1.0.2父对象的通知

时间:2016-11-20 01:55:10

标签: realm

我希望在分配父对象中的属性并且通知结果包含所有已安排的子项时收到通知

以下是我所指的代码行:

realm.objects(Parent.self).filter("state = Error").addNotificationBlock { ... }

目前我收到通知,但我无法确定它适用的对象。这是可能的还是我需要通过每个?

谢谢, 麦克

1 个答案:

答案 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对象本身的索引。