Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios/xcode:NSManagedObjectContext上的核心数据抛出错误_Ios_Core Data_Nsmanagedobjectcontext - Fatal编程技术网

ios/xcode:NSManagedObjectContext上的核心数据抛出错误

ios/xcode:NSManagedObjectContext上的核心数据抛出错误,ios,core-data,nsmanagedobjectcontext,Ios,Core Data,Nsmanagedobjectcontext,我是IOS新手,正在尝试做一个关于核心数据的教程。下面的代码编译后崩溃。断点显示了下面的错误,但我不知道它是什么意思,也不知道如何修复它。这是密码 - (void)viewDidLoad { [super viewDidLoad]; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity =[NSEntityDescription enti

我是IOS新手,正在尝试做一个关于核心数据的教程。下面的代码编译后崩溃。断点显示了下面的错误,但我不知道它是什么意思,也不知道如何修复它。这是密码

 - (void)viewDidLoad {
        [super viewDidLoad];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity =[NSEntityDescription entityForName:@"FailedBankInfo" inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];
            NSError *error;
            self.failedBankInfos = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
            self.title = @"Failed Banks";
    }
以下是错误:

managedObjectContext = (NSmanagedObjectContext *) nil
下面是控制台显示的内容

    2015-01-14 19:28:50.084 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.088 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.093 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Zip: 12345
    2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Name: Test Bank
    2015-01-14 19:28:50.094 coredat

a-wend[39693:1857624] Zip: 12345
(lldb) 

如果您对如何修复此问题有任何建议,我们将不胜感激。

这不是一条错误消息(或者至少不是一条完整的错误消息)。但如果它是正确的,它几乎是不言自明的:
managedObjectContext
为nil,这意味着没有给它赋值。当您试图查找实体描述时,您正在为第二个参数传递一个nil值


从您发布的代码来看,为什么它是nil并不明显,但很可能您一开始从未给它赋值。在某些时候,您需要为该属性分配一个
NSManagedObjectContext
。在何处执行此操作取决于应用程序的结构,但可能的位置是在创建此视图控制器的任何代码中。

我还没有完全理解您的意思。该项目源自苹果的通用master detail应用程序。与上面链接的Ray Wenderlich tut在应用程序中放置了以下委托文件:at属性(只读、强、非原子)NSManagedObjectContext managedObjectContext;它在.m文件中与_managedObjectContext合成。以下内容也在主视图控制器中:at属性(非原子,强)NSManagedObjectContext managedObjectContext;它在.m文件中合成,托管ObjectContext没有下划线。这可能是个问题吗?听起来你的应用程序代理和视图控制器都有一个
managedObjectContext
。但仅仅声明它们的存在是不够的,你还必须赋予它们价值。很可能,在应用程序委托中的某个位置,您需要将视图控制器的
managedObjectContext
设置为与应用程序委托中的值相同。此方法是应用程序内委托…-(NSManagedObjectContext*)managedObjectContext{if(_managedObjectContext!=nil){return_managedObjectContext;}NSPersistentStoreCoordinator*coordinator=[self-persistentStoreCoordinator];如果(!coordinator){return nil;}{U managedObjectContext=[[NSManagedObjectContext alloc]init];[[U managedObjectContext setPersistentStoreCoordinator:coordinator];return{managedObjectContext;}我看不到它被调用。