ユーザー入力フォームを持つアプリを作成しています。ストーリーボードを使用して、最初のView Controllerとしてフォームを持つViewControllerを設定し、APp DelegateでrootViewControllerを設定すると、心配なくデータを保存できます。
アプリを別の ViewController で起動し、入力フォームへのボタン リンクを設定したい場合、フォームに入力できますが、保存を押すと、問題のエンティティが見つからないことがわかります。
以下のコードは appDelegate.m ファイルからのもので、データ入力を処理する VC に設定された瞬間です。現在コメントアウトされているViewControllerがルートになり、AddDataVCにボタンを保存するとエンティティを見つけることができるように設定したいと思います。
私のCoreDataコードはデータを保存できるので問題ないと確信していますが、入力フォームが最初のViewControllerではない場合にのみクラッシュします。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
AddDataVC *addDataVC = (AddDataVC *)self.window.rootViewController;
addDataVC.managedObjectContext = self.managedObjectContext;
//ViewController *controller = (ViewController *)self.window.rootViewController;
//controller.managedObjectContext = self.managedObjectContext;
return YES;
}
前もって感謝します:-)
--編集--
以下に、コンソールからのエラーを貼り付けました。
2012-05-17 23:46:37.288 SW_Vault[26604:15203] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'Product''
--編集2--
わかりましたので、私が説明しようとしているのはこれです。ユーティリティ アプリのようなテンプレートを使用すると、エンティティを作成し、textField と保存ボタンを設定して、データを問題なく保存できます。画像はストーリーボードから外れています。VC が 1 つしかなく、それが初期ビューであることに注意してください。
しかし、最初のView Controllerとして別のVCがあると、エンティティが見つからないというエラーが発生します。上記で説明したエラーです。
Entry View のコードは変更されていませんが、この質問に投稿した最初の -(BOOL) を見ると、2 つの rootViewControllers から選択できます。もう一方を使用するには、一方をコメントアウトするだけです。
2 番目の画像で、そのボードの 2 番目の VC を最初の VC にすると、問題はありません。セグエ経由でそこに到達した場合のみです。
それがより理にかなっていることを願っています:-)