0

ユーザー入力フォームを持つアプリを作成しています。ストーリーボードを使用して、最初の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 にすると、問題はありません。セグエ経由でそこに到達した場合のみです。

それがより理にかなっていることを願っています:-)

4

2 に答える 2

0

このエラーは、を定義する管理対象オブジェクトモデルをロードしていない可能性があることを意味しますProduct

これを回避するには、コードのどこか(おそらくAppDelegate)でCoreDataスタックを設定する必要があります。

詳細については、このstackoverflowの投稿を読むことをお勧めします。

于 2012-05-17T11:56:58.070 に答える
0

さて、私は質問への答えを持っています:-)

それを機能させるには、セグエをセットアップする必要がありました。私はここで質問をして、この答えを得ました:-)

レイ・ウェンダーリッヒ フォーラム

于 2012-05-18T23:23:04.450 に答える