2

私はいつか iPhone の開発を開始し、アプリケーションにコア データを実装しようとしています。

FetchRequest を実行する過程で、次のコードで立ち往生しています...

MYAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];

デバッグ中に次のエラーが表示されます...

Program received signal: "EXC_BAD_ACCESS"

アプリを実行すると、クラッシュするだけです。

デバッグモードで「続行」ボタンを押すと、このエラーが何度も表示されます。

コードをこれに変更してみました.....

NSManagedObjectContext *context = [(MyAppDelegate *)[[UIApplication sharedApplication\ delegate] managedObjectContext];

これによりアプリを実行できますが、シミュレーターのホーム ボタンを押すと、コンソールに同じエラーが表示されます。

ここで何がうまくいかないのでしょうか?

4

1 に答える 1

2

アプリケーション デリゲートのパブリック アクセサー メソッドがあることを確認してください。AppDelegate.m の上部に、そのように実装します。


+ (MYAppDelegate *)sharedAppDelegate
{
    return (MYAppDelegate *) [UIApplication sharedApplication].delegate;
}

次に、次を使用してアクセスできます。


[[MYAppDelegate sharedAppDelegate] managedObjectContext]

于 2011-01-19T06:59:54.727 に答える