Si ces nouveaux objets que vous avez ajoutés au navigateur de Realm ont certainement persisté (c.-à, vous pouvez fermer le fichier Royaume et ouvrir de nouveau, et ils » re toujours là), alors il semble que vous ayez besoin d'ajouter un bloc de notification dans votre application pour détecter quand le navigateur de domaine a changé les données et pour déclencher une mise à jour de l'interface utilisateur.
Si vous affichez ces enregistrements en tant que table ou vue de collection, vous pouvez utiliser Realm's collection change notifications pour détecter l'ajout d'un nouvel objet.
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()
}
}
Sinon, vous devrez peut-être utiliser un autre type de notifications de domaine.
Dans tous les cas, même si votre interface utilisateur de votre application ne se met pas à jour, les objets de domaine sont en direct et se mettront automatiquement à jour automatiquement lorsque leurs valeurs changent. Vous devriez être en mesure de définir des points d'arrêt dans votre application et d'examiner les objets directement pour confirmer que vos données se présentent. Bonne chance!
Salut Mr.TiM, Merci beaucoup pour votre commentaire. C'est tellement bon pour moi d'apprendre la méthode de débogage de votre part. Après la réinstallation, j'ai résolu le problème. Le navigateur de domaine est tellement cool! – Kamogawa