Я создаю приложение, которое будет использовать модель Core Data. Я довольно новичок в Objective C, и мои обычные шаблоны проектирования на самом деле не применимы к Core Data и Objective C, по крайней мере, я не могу найти примеры, которые подтверждают, что они будут.
Я ознакомился с примерами Apple Developer и различными источниками в интертубах.
Кажется, что для использования базовых данных мне нужно передать managedObjectContext каждому из моих viewControllers, заставить viewController реализовать NSFetchedResultsControllerDelegate, а затем реализовать каждый из методов для выполнения выборки и впоследствии реализовать
NSFetchedResultsChangeInsert
NSFetchedResultsChangeDelete
NSFetchedResultsChangeMove
NSFetchedResultsChangeUpdate
Это добавляет примерно 100+ строк кода в каждый viewController, и это на 90% тот же код, который я пишу снова и снова. Кроме того, я должен все обойти и отследить, как он занимает память.
На других языках я бы построил одноэлементную модель из нескольких классов, в которой содержались методы для обслуживания и доставки данных по запросу, доступные из любого места. Кажется, я не могу использовать этот подход в Objective C. Если я собираюсь создать статический класс, который взял managedObjectContext и вернул мне то, что мне нужно, мне все равно придется передавать managedObjectContext каждому представлению, и это не будет асинхронно, как когда я реализую методы делегата, которые просто вызываются, когда результат готов.
Я надеюсь, что это имеет смысл, и что кто-то может либо подтвердить, что нет другого разумного способа сделать это, либо помочь мне указать направление для правильного завершения этого вопроса.
Спасибо:)