假设我有两个Results
,第二个链接来自第一个filter
。在这种情况下,它是一个allPeople
集合和一个adults
集合,只对18岁或以上的人进行过滤。
let realm = try! Realm()
let sortDescriptors = [SortDescriptor(keyPath: "lastName", ascending: true),
SortDescriptor(keyPath: "firstName", ascending: true)]
let allPeople = realm.objects(Person.self).sorted(by: sortDescriptors)
let adults = allPeople.filter("age >= 18")
allPeople.addNotificationBlock { changes in
// Are the collections in sync here?
}
通知块中的更改是否保证会反映在allPeople
集合和adults
集合中?我处理更改通知时,两个集合是否可能不同步?
答案 0 :(得分:1)
整个Realm和所有相关对象都是原子级的,并且不应该观察到不一致的状态。在通知块中,所有Realm对象和结果都将反映通知所针对的新版本。
唯一需要注意的是,显然无法同时调用多个通知块,因此如果您同时收到allPeople
和adults
的通知,则无法依赖其他通知的事情。