Ios 我从NSManagedObjectContext获取数据时出错

Ios 我从NSManagedObjectContext获取数据时出错,ios,core-data,nsmanagedobjectcontext,nsfetchrequest,Ios,Core Data,Nsmanagedobjectcontext,Nsfetchrequest,我运行我的应用程序,然后获取我的数据。数据还可以。当我第二次跑步时,我对我的旧价值观产生了不满。怎么了 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSEntityDescription *entity = [NSEntityDescription entityForName:@"Test" inManagedObje

我运行我的应用程序,然后获取我的数据。数据还可以。当我第二次跑步时,我对我的旧价值观产生了不满。怎么了

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
 NSEntityDescription *entity = [NSEntityDescription entityForName:@"Test" inManagedObjectContext:[self managedObjectContext]]; 
    for (int i =0; i<2; i++) 
    {
        Test *test = [[[Test alloc] initWithEntity:entity insertIntoManagedObjectContext:[self managedObjectContext]] autorelease];
        test.text = @"Text";
        test.index = [NSNumber numberWithInt:i];
    }
    [self saveContext];
}


-(void) showValues
{    
 NSEntityDescription *entity = [NSEntityDescription entityForName:@"Test" inManagedObjectContext:[self managedObjectContext]];
 NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
 [request setEntity:entity];    
 NSError *error;    
 NSArray *array = [[self managedObjectContext] executeFetchRequest:request error:&error];
 NSLog(@"Array: %@ ", array);    
}
-(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项
{
NSEntityDescription*实体=[NSEntityDescription entityForName:@“测试”在托管对象上下文:[self-managedObjectContext]];
对于(inti=0;i我修复了一个bug

我刚换了一辆

 NSLog(@"Array: %@ ", array);

错误消失了

并不意味着数据已损坏。这意味着它与获取的结果动态链接,并且在尝试访问对象的任何值/属性时,将加载实际对象。记住-您在.m文件中使用了@dynamic?
这就是为什么当您使用数组
NSLog
时,它会显示
,而当您访问对象的任何属性
NSLog(@“Test:%@”,Test.text);

时,错误就会消失。现在您只需“强制”该程序用于从核心数据加载数据。请确保从生产版本中删除该代码。故障是核心数据提高性能的一个重要功能。请查看文档:
2012-01-22 21:50:29.892 Mew[429:707] Array: (
"<Test: 0x16c950> (entity: Test; id: 0x16c720 <x-coredata://90165BCF-D2DE-4661-9B12-33EF86F0C09F/Test/p1> ; data: <fault>)",
"<Test: 0x16d130> (entity: Test; id: 0x16c730 <x-coredata://90165BCF-D2DE-4661-9B12-33EF86F0C09F/Test/p2> ; data: <fault>)",
"<Test: 0x1684c0> (entity: Test; id: 0x16bfd0 <x-coredata://90165BCF-D2DE-4661-9B12-33EF86F0C09F/Test/p3> ; data: {\n    index = 0;\n    text = Text;\n})",
"<Test: 0x16ab90> (entity: Test; id: 0x16c100 <x-coredata://90165BCF-D2DE-4661-9B12-33EF86F0C09F/Test/p4> ; data: {\n    index = 1;\n    text = Text;\n})"
) 
 NSLog(@"Array: %@ ", array);
for (Test *test in array)
{
    NSLog(@"Test: %@ ", test.text);
}