コアデータを使用することは、アプリケーションデリゲートがあるかどうかとは関係ありません。彼らは2つの別々のものです。 はをまとめていますが、コアデータもアプリケーションデリゲートもそれを必要としません。それは非常に良いデザインではありません。アプリデリゲートの仕事は、起動、バックグラウンドへの進出などのアプリライフサイクルイベントに対応することです。アプリのデータを管理する別の仕事を混在させることは悪い設計です。
Xcodeで新しいプロジェクトを作成し、[コアデータを使用する]チェックボックスをオンにすると、アプリケーションのコアデータを設定するためのアプリケーションデリゲートクラスのメソッドがXcodeに含まれます。しかしそのコードはどんなクラスにも入れられます。そのクラスにコードを必要とするアプリケーションデリゲートについて特別なことは何もありません。 Xcodeがそのクラスにそのコードを置くのは、それがであることを意味するわけではありません。そのようにするにはが必要です。アプリデリバリーでコアデータを使用する必要がある場合は、それを行う必要があります。
一般的なアプローチの1つは、コアデータを管理するための新しいクラスを作成することです。アプリケーションデリゲートではなく、すべてのコアデータスタック管理コードをそこに置きます。アプリケーションデリゲートは、このクラスのインスタンスをアプリケーションに作成します。アプリエクステンションでは、エクステンションのタイプに必要な場所でクラスをインスタンス化できます。
Core Dataを使用するアプリケーションの委任者は必要ありません。 2つは完全に無関係です。 –
@TomHarrington質問の答えとして、それを拡大してもいいですか? :) –