당신이 영역 브라우저에 추가 한 그 새로운 객체가 확실히 지속 한 경우 (즉, 당신은 영역 파일을 닫을 수 다시 열어, 그들은 ' 여전히 거기에 있습니다), 그러면 Realm Browser가 데이터를 변경 한 시점을 감지하고 UI 업데이트를 트리거하기 위해 앱에 알림 블록을 추가해야하는 것처럼 들립니다.
이러한 레코드를 테이블 또는 컬렉션보기로 표시하는 경우 Realm's collection change notifications을 사용하여 새 개체가 추가 된시기를 감지 할 수 있습니다.
class ViewController: UITableViewController {
var notificationToken: NotificationToken? = nil
override func viewDidLoad() {
super.viewDidLoad()
let realm = try! Realm()
let results = realm.objects(Person.self).filter("age > 5")
// 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
}
}
}
deinit {
notificationToken?.stop()
}
}
그렇지 않은 경우 다른 유형의 영역 알림을 사용해야 할 수 있습니다.
어쨌든 앱의 UI가 업데이트되지 않아도 영역 개체가 생방송되며 값이 변경되면 자동으로 업데이트됩니다. 앱에 중단 점을 설정하고 객체를 직접 검사하여 데이터가 전달되는지 확인할 수 있어야합니다. 행운을 빕니다!
출처
2017-03-21 23:05:46
TiM
안녕하세요. Mr. Tii, 고객님의 의견에 진심으로 감사드립니다. 나에게서 디버깅 방법을 배우는 것이 너무 좋다. 다시 설치 한 후 문제가 해결되었습니다. 렐름 브라우저가 너무 멋지다! – Kamogawa