Мне было интересно, какая была лучшая практика для выполнения managedObjectContext
. Когда я впервые начал изучать swift/iOS/Xcode в начале этого года, я помещал эту строку в каждый класс для ViewControllers/TableViewControllers.Должен ли я создать новый managedObjectContext для каждого ViewController Swift
let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
И все работает правильно. Но потом я подумал, что в какой-то момент я кое-что прочитал, сказав, что для каждого ViewController/TableViewController используется тот же managedObjectContext
. И я интерпретировал это, чтобы отправить мою исходную переменную moc в каждый ViewController/TableViewController. Для этого я начал отправлять его в функцию «prepareForSegue». Таким образом, только первый вид имел код выше, а все остальное только var moc: NSManagedObjectContext?
, которое будет установлено из функции prepareForSegue
.
Но чем больше я учусь, я начинаю думать, что AppDelegate создает реальную managedObjectContext
и let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
линия просто установив, что managedObjectContext
к MOC переменной, а на самом деле не делает новый managedObjectContext
.
Должен ли я продолжать использовать функцию prepareForSegue
для отправки моей переменной moc во все связанные ViewControllers/TableViewControllers, или я не должен беспокоиться об этом и настраивать ее, используя код вверху?
спасибо.
Вы почти наверняка правильно о AppDelegate создания одного объекта и передавая вам ссылку. ** На мой взгляд **, однако, диспетчеры взглядов действительно не должны знать механику того, как их данные будут получены. Возможно, вам захочется взглянуть на структуру MVC, где объект Model отвечает за передачу данных и контроллеров с ним, отправку изменений и получение текущего состояния. –
Если вам интересно, вы можете посмотреть https://realm.io/news/slug-marcus-zarra-exploring-mvcn-swift/ Вкратце упоминает разные методы обработки 'managedObjectContext', но говорит о вашем большом вопросе о архитектуре приложения , – beyowulf
Спасибо, я обязательно это сделаю! –