-
Notifications
You must be signed in to change notification settings - Fork 273
Open
Description
As described here:
realm/realm-swift#4761 (comment)
Demo code:
class Test: Object {
dynamic var name = ""
override var description: String {
return "[name => '\(name)']"
}
}
class ViewController: UIViewController {
private let bag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
test()
}
var token: NotificationToken?
func test() {
let realm = try! Realm()
let obj = Test()
try! realm.write {
realm.deleteAll()
realm.add(obj)
}
let tests = realm.objects(Test.self)
DispatchQueue.global(qos: .background).async {
let realm = try! Realm()
let obj = realm.objects(Test.self).first!
try! realm.write {
obj.name = "Test0"
}
}
Observable.array(from: tests)
.subscribe(onNext: { value in
print("rx next: \(flatten(value))")
})
.addDisposableTo(bag)
token = tests.addNotificationBlock { changes in
switch changes {
case .initial(let tests):
print("realm initial: \(flatten(tests))")
case .update(let tests, _, _, _):
print("realm changed: \(flatten(tests))")
default: break
}
}
}
}
congnc1, asd4059 and tristangrichard