0

CoreData を使用して作成した、しばらくの間取り組んできたこのアプリがあります。しかし、私は最近、データ モデルの構築と CoreData の操作を開始しました。これを行ったので、シミュレーターでアプリを実行するたびに、最初の行の App Delegate / didFinishLaunchingWithOptions でクラッシュします。

self.window.rootViewController = self.navigationController;

クラッシュは次のとおりです。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'executeFetchRequest:error: A fetch request must have an entity.'

その行をコメントアウトすると、実行されます。変!コードのこの時点では、まだ CoreData を使用していないため、フェッチはまだありません。データモデルが変更されたため、システムフェッチが発生した可能性がありますか? シミュレーターからアプリを削除し、クリーン/ビルドを実行しましたが、問題は解決しません。

最初の質問: エラーを修正するにはどうすればよいですか?

2 番目の質問: これは問題ですか? rootViewController の設定を無視できますか?

3 番目の質問: なぜ今失敗しているのですか?

4

2 に答える 2

0

使用したプロジェクト テンプレートに応じて、Xcode はおそらくデフォルトのフェッチ要求を設定します。モデルを編集するときに、これらをカスタマイズする必要があります。

たとえば、「Master-Detail Application」テンプレートは、NSFetchedResultsControllerMasterViewController.m に を作成します。Eventデフォルトのエンティティ タイプを探すフェッチ リクエストを使用します。そのエンティティが存在しない場合、フェッチ リクエストは表示されているエラーでクラッシュします。デフォルトのエンティティを削除し、独自のエンティティをいくつか作成しましたが、フェッチ要求を行うコードを変更していないと思います。

その行をコメントアウトすると、クラッシュを防ぐことができますが、アプリが動作しなくなります。いくつかの重要な作業をスキップしているだけですが、その行を元に戻してコードを修正する必要があります。

于 2013-05-03T22:03:31.683 に答える