Best practice
[email protected]
var timeline: Results?
var notificationToken: NotificationToken?
override func viewDidLoad() {
super.viewDidLoad()
...
let realm = try! Realm()
timeline = realm.objects(Article.self)
.sorted("creationDate", ascending: false)
notificationToken = timeline?.addNotificationBlock { [weak self] (results, error) in
if let _ = error {
return
}
self?.tableView.reloadData()
}
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return timeline?.count ?? 0
}
func getTimeline() {
...
request.performRequestWithHandler { (data, response, error) -> Void in
if let error = error {
self.showAlert(error.localizedDescription)
return
}
let articles = try NSJSONSerialization.JSONObjectWithData(data, options: [])
let realm = try! Realm()
try! realm.write {
articles.forEach { (article) -> () in
...
realm.add(article, update: true)
}
}
}
}