Использование основных данных не имеет ничего общего с наличием делегата приложения. Это две разные вещи. Вы можете использовать , но ни Core Data, ни делегат приложения не требуют этого. Это даже не очень хороший дизайн. Задача делегата приложения - реагировать на события жизненного цикла приложения, такие как запуск, выход в фоновом режиме и т. Д., И это плохой дизайн, чтобы также смешивать отдельную работу по управлению данными приложения.
Если вы создадите новый проект в Xcode и установите флажок «Использовать основные данные», Xcode будет включать методы в класс делегата приложения для настройки основных данных для приложения. Но этот код может пойти в любом классе. Нет ничего особенного в делетете приложения, который требует, чтобы этот код был в этом классе. Просто потому, что Xcode помещает этот код в этот класс, это не значит, что это необходимо, чтобы сделать это таким образом. Если вам нужно использовать Core Data в расширении приложения, это то, что вы будете делать.
Один общий подход - создать новый класс для управления основными данными. Поместите весь свой код управления стеком Core Data, а не в делегат приложения. Делегат приложения может создать экземпляр этого класса в вашем приложении. В расширении приложения класс может быть создан в любом месте, где это необходимо для типа расширения.
Вам не нужно, чтобы делегат приложения использовал основные данные. Эти два совершенно не связаны. –
@TomHarrington вы не возражаете, расширяя это, как ответ на вопрос? :) –