2012-02-07 8 views
1

iOS4ベースのブックからCoreDataを学習していますので、このコードからサンプルコードを実装しています。コードをiOS5(ストーリーボードとARC)に移行しています。 私はまた、iOS4をコードを実装しているし、それが完璧に動作しますが、私はモデルオブジェクトの名前からNSEntityDescriptionを得るときiOS5をバージョンで私がEXC_BAD_ACCESSを得る:NSEntityDescriptionのコアデータ作成時のEXC_BAD_ACCESS

AppDelegate *appDelegate =[[UIApplication sharedApplication] delegate]; 
NSManagedObjectContext *context = [appDelegate managedObjectContext]; 

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Customer" inManagedObjectContext:context]; 
信号が最後の行で発生し

コード。私は、デリゲートがコンテキストをViewControllerに渡す必要があることを知っていますが、このコードではコンテキストが問題ではないと確信しています。

アイデア?なぜEXC_BAD_ACCESSをここで入手できますか?この行が正しいことを確認できますか?

答えて

2

エンティティ文字列が間違っていると思われますか?クラッシュを避けるには、次のようなものを使用してください:

NSEntityDescription *entity = [[managedObjectModel entitiesByName] 
    objectForKey:@"Customer"]; 
+0

私が言ったように、私はコアデータを学んでいるので、私はこの方法を知らなかった。 entitiesByNameメソッドを使用すると、モデルにエンティティが存在しないことがわかりました。ですから問題は.xcdatamodeldファイルの名前を変更したことです。私はデリゲートでそれを変更しましたが、モデルファイル名を変更したい場合(そしてアプリケーションがXDで動作するようにしたい場合)、新しい名前で新しいモデルファイルを作成する必要があります。 http://stackoverflow.com/questions/5621178/rename-xcdatamodel-file 問題はついに解決されました!そんなに大変ありがとう@ムンディ – angeleke

+0

訂正のために@エマンタスに感謝します。 – angeleke

関連する問題