У меня возникла проблема с NotificationCenter.default.addObserver. На первой странице у меня появляется Note tableView, когда я нажимаю элемент tableView, показываю этот контроллер «NoteDetailsViewController». в NoteDetailsViewController я не могу получить экземпляр заметки, подобный этому self.note?.noteCategory //return nil.
PS Я сохранил элемент заметки в Core Data persistentStore.
import UIKit
import CoreData
class NoteDetailsViewController: UIViewController, ManagedObjectContextDependentType {
var note: Note?
var managedObjectContext: NSManagedObjectContext!
@IBOutlet weak var noteCategoryLabel: UILabel!
@IBOutlet weak var fromLabel: UILabel!
@IBOutlet weak var messageTextView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(forName: NSNotification.Name.NSManagedObjectContextDidSave,
object: nil,
queue: nil,
using:
{
(notification: Notification) in
if let updatedNotes = notification.userInfo?[NSUpdatedObjectsKey] as? Set<Note> {
self.note = updatedNotes.first
self.setUIValues()
}
})
setUIValues()
}
deinit {
NotificationCenter.default.removeObserver(self,
name: NSNotification.Name.NSManagedObjectContextDidSave,
object: nil)
func setUIValues() {
self.noteCategoryLabel.text = self.note?.noteCategory //this line return nil
self.messageTextView.text = self.note?.message //this line return nil
self.fromLabel.text = self.note?.from //this line return nil
}