iPhone:无法使用appDelegate访问NSManagedObjectContext

时间:2011-01-19 06:00:19

标签: iphone core-data exc-bad-access nsmanagedobjectcontext

我已经开始使用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];

这可以让应用程序运行,但是当我按下模拟器主页按钮时,控制台中会显示相同的错误。

这里可能出现什么问题?

1 个答案:

答案 0 :(得分:2)

确保您的应用程序委托具有公共访问器方法。我会像你这样在AppDelegate.m

的顶部实现它

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

然后您可以使用以下方式访问它:


[[MYAppDelegate sharedAppDelegate] managedObjectContext]