我有一个iPad应用,其数据存储在core data
中。我使用以下代码从Observations实体中检索数据,该实体看起来运行没有任何问题,并且observeList的计数是正确的。
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Observations"];
NSError *error = nil;
observationList = [[NSArray alloc]init];
observationList = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
但是当我尝试使用数组访问数据时 - 例如:
NSLog(@"%@", [[observationList objectAtIndex:0] objectForKey:@"obsDate"]);
它会抛出错误
reason: '-[Observations objectForKey:]: unrecognized selector
核心数据中存在obsDate。谁能看到我做错了什么?
答案 0 :(得分:2)
NSManagedObject
未实施objectForKey:
,您应该使用valueForKey:
代替id
。您的代码编译是因为数组返回observationList = [[NSArray alloc]init];
,因此编译器只需要相信您在其上调用的方法将在运行时存在。
除此之外:这条线是没有意义的
{{1}}
因为你在下一行丢弃了那个数组实例。