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);
}