Sam*_*nen 1 cocoa-touch delegates core-data ios ios7
所以当我尝试在我的一个视图控制器中检索我的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;
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试检索managedObjectContext的方法
QVAppDelegate *appDelegate = (QVAppDelegate*)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = appDelegate.managedObjectContext;
Run Code Online (Sandbox Code Playgroud)
以下是appDelegate中的定义
@property (strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
Run Code Online (Sandbox Code Playgroud)
我正在使用ARC并将本教程的代码转换为ARC.
我真的似乎无法解决这个问题.
编辑:这是它崩溃的地方http://i.imgur.com/1yOS7TM.png
你似乎在这里有一个无限循环:
- (NSManagedObjectContext *) managedObjectContext {
if (self.managedObjectContext != nil) {
return self.managedObjectContext;
}
Run Code Online (Sandbox Code Playgroud)
self.managedObjectContext转换为[self managedObjectContext]您刚刚输入的方法.所以你一遍又一遍地调用访问者.
您没有正确复制该示例.
其次,你真的应该使用依赖注入而不是像单例一样对待你的App Delegate.我强烈建议研究DI并采用这种设计模式.它会在以后为你节省很多痛苦.
它在哪里崩溃?什么代码行?它self.managedObjectContext = appDelegate.managedObjectContext;或其他地方?在Xcode中你的断点在哪里?如果在该行的代码发射,而不是内部的的-managedObjectContext方法,那么你有一个问题,您的应用程序委托(这应该是不可能的).
| 归档时间: |
|
| 查看次数: |
894 次 |
| 最近记录: |