0

テキスト フィールドのテキストを取得してエンティティに格納するボタンをプログラムしました。iPhone シミュレーターで実行し、テキストを入力してボタンを押すと、クラッシュします。何が起こっているかを示すメッセージはありません。シミュレーターが気に入らないのは、このコメント化されていないコード行であると判断しました。

Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
//    person.username = self.usernameTextField.text;
//    person.password = self.passwordTextField.text;
//    person.carmodel = self.carModelTextField.text;
//    [self.managedObjectContext save:nil];

何が起こっているのかについてのアイデアはありますか?どこから始めればよいかさえわかりません。もちろん、シミュレーターが実行されるため、コンパイラーは問題を引き起こしません。前もって感謝します!

4

4 に答える 4

0

シミュレーターでアプリを削除し、ビルドをクリーンアップして再度インストールします。それが動作します。

于 2012-05-17T06:51:30.250 に答える
0

ゾンビオブジェクトが発生したエラーを確認できるようにする

製品に移動>スキームを編集>ゾンビを有効にする

于 2012-05-17T06:55:01.327 に答える
0

この問題は、複数の理由で発生している可能性があります。Xcode で例外ログを提供してください。出力セクション (表示 -> デバッグ領域 -> コンソールの有効化) に表示されます。

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

  1. データ モデルを変更しました (データ モデルを変更した後、シミュレーター/デバイスからアプリを削除して、再度インストールする必要があります)。

  2. 指定したコード行のエンティティ名「Person」にタイプミスがある可能性があります。それがデータ モデルのエンティティ名と一致することを確認してください。

  3. これがアプリのメイン ビュー コントローラーでない場合は、managedObjectContext をそれに渡す必要があります。まず、アプリ デリゲート managedObjectContext が適切に設定されていることを確認し、1 つのビュー コントローラーから別のビュー コントローラーに渡します。

于 2012-05-17T07:05:54.417 に答える