从应用程序委托中检索managedObjectContext时崩溃

萨穆利·莱顿宁(Samuli Lehtonen)

因此,当我尝试在我的一个视图控制器中检索我的managedObjectContext时,出现了EXC_BAD_ACESS(code = 2 ...)错误。

这是我的getter方法代码:

- (NSManagedObjectContext *) managedObjectContext {
    if (self.managedObjectContext != nil) {
        return self.managedObjectContext;
    }
    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
        self.managedObjectContext = [[NSManagedObjectContext alloc] init];
        [self.managedObjectContext setPersistentStoreCoordinator: coordinator];
    }

    return self.managedObjectContext;
}

这就是我尝试检索managedObjectContext的方式

QVAppDelegate *appDelegate = (QVAppDelegate*)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = appDelegate.managedObjectContext;

这是appDelegate中的定义

@property (strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

我正在使用ARC,并将本教程的代码转换为ARC。

我真的似乎无法解决这个问题。

编辑:这是崩溃的地方http://i.imgur.com/1yOS7TM.png

马库斯·扎拉(Marcus S.Zarra)

您似乎在这里有一个无限循环:

- (NSManagedObjectContext *) managedObjectContext {
    if (self.managedObjectContext != nil) {
        return self.managedObjectContext;
    }

self.managedObjectContext转换为[self managedObjectContext]您刚刚输入的方法。因此,您要一遍又一遍地调用访问器。

您没有正确复制该示例。

其次,您确实应该使用依赖注入,而不是像单例一样对待App Delegate。我强烈建议您研究DI并采用该设计模式。以后将为您节省很多痛苦。

更新1

它在哪里崩溃?哪行代码?self.managedObjectContext = appDelegate.managedObjectContext;还是其他地方?Xcode中的断点触发位置在哪里?如果在该行的代码发射,而不是内部的的-managedObjectContext方法,那么你有一个问题,您的应用程序委托(这应该是不可能的)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从uitableview cellForRowAtIndexPath委托中删除行时,应用程序崩溃

来自分类Dev

调用委托后应用程序崩溃

来自分类Dev

检索 downloadURL.result 时应用程序崩溃

来自分类Dev

应用程序从URL检索图像并在Android应用程序中显示崩溃

来自分类Dev

应用程序从URL检索图像并在Android应用程序中显示崩溃

来自分类Dev

使用setShadowLayer()时,应用程序仅在4.4.2中崩溃

来自分类Dev

BluetoothChat应用程序在Android 4.4中的onDestroy()时崩溃

来自分类Dev

将NSArray存储在NSUserDefaults中时,应用程序崩溃

来自分类Dev

在变量中设置图像时应用程序崩溃

来自分类Dev

AgGrid在React应用程序中重新渲染时崩溃

来自分类Dev

Android应用程序从XML中打开InputStream时崩溃

来自分类Dev

当在Delphi中钩LdrLoadDll时,应用程序崩溃

来自分类Dev

在scheduleAtFixedRate中启动活动时,应用程序崩溃

来自分类Dev

在片段中创建Listview时,Android应用程序崩溃

来自分类Dev

在viewpager中打开新片段时,应用程序崩溃

来自分类Dev

应用程序在Facebook登录中获取nullPointerException时崩溃

来自分类Dev

应用程序在 AsyncTask Android 中调用方法时崩溃

来自分类Dev

从数组列表中删除项目时应用程序崩溃

来自分类Dev

在应用程序委托中调用MPMoviePlayerViewController

来自分类Dev

单击应用程序图标时,应用程序崩溃

来自分类Dev

将C ++函数与委托一起使用后,C#应用程序在退出时崩溃

来自分类Dev

应用程序在启动时崩溃

来自分类Dev

暂停时Android应用程序崩溃

来自分类Dev

播放视频时应用程序崩溃

来自分类Dev

PFFile太大时,应用程序崩溃

来自分类Dev

更新时列出崩溃应用程序

来自分类Dev

单击按钮时应用程序崩溃

来自分类Dev

JavaFx应用程序在退出时崩溃

来自分类Dev

使用SherlockFragmentActivity时应用程序崩溃

Related 相关文章

  1. 1

    从uitableview cellForRowAtIndexPath委托中删除行时,应用程序崩溃

  2. 2

    调用委托后应用程序崩溃

  3. 3

    检索 downloadURL.result 时应用程序崩溃

  4. 4

    应用程序从URL检索图像并在Android应用程序中显示崩溃

  5. 5

    应用程序从URL检索图像并在Android应用程序中显示崩溃

  6. 6

    使用setShadowLayer()时,应用程序仅在4.4.2中崩溃

  7. 7

    BluetoothChat应用程序在Android 4.4中的onDestroy()时崩溃

  8. 8

    将NSArray存储在NSUserDefaults中时,应用程序崩溃

  9. 9

    在变量中设置图像时应用程序崩溃

  10. 10

    AgGrid在React应用程序中重新渲染时崩溃

  11. 11

    Android应用程序从XML中打开InputStream时崩溃

  12. 12

    当在Delphi中钩LdrLoadDll时,应用程序崩溃

  13. 13

    在scheduleAtFixedRate中启动活动时,应用程序崩溃

  14. 14

    在片段中创建Listview时,Android应用程序崩溃

  15. 15

    在viewpager中打开新片段时,应用程序崩溃

  16. 16

    应用程序在Facebook登录中获取nullPointerException时崩溃

  17. 17

    应用程序在 AsyncTask Android 中调用方法时崩溃

  18. 18

    从数组列表中删除项目时应用程序崩溃

  19. 19

    在应用程序委托中调用MPMoviePlayerViewController

  20. 20

    单击应用程序图标时,应用程序崩溃

  21. 21

    将C ++函数与委托一起使用后,C#应用程序在退出时崩溃

  22. 22

    应用程序在启动时崩溃

  23. 23

    暂停时Android应用程序崩溃

  24. 24

    播放视频时应用程序崩溃

  25. 25

    PFFile太大时,应用程序崩溃

  26. 26

    更新时列出崩溃应用程序

  27. 27

    单击按钮时应用程序崩溃

  28. 28

    JavaFx应用程序在退出时崩溃

  29. 29

    使用SherlockFragmentActivity时应用程序崩溃

热门标签

归档