错误:“在实体中找不到keypath objectID”

时间:2012-03-30 10:50:27

标签: iphone uitableview nsfetchedresultscontroller

我收到此错误: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath objectID not found in entity <NSSQLEntity Pair id=2>'

当我使用“objectId”作为NSFetchedResultsController的搜索描述符和sectionNameKeyPath时。

我希望每个对象都能产生一个新的部分。

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"objectID" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"objectID" cacheName:nil];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;

任何提示?

提前致谢。

2 个答案:

答案 0 :(得分:0)

可能因为objectId和objectID是不同的字符串。检查一下。

答案 1 :(得分:0)

我遇到了同样的错误。原因是我正在创建临时NSManagedObjectContext实例而不保留它。简单地创建对象并指定它对变量的引用可以解决我的问题。