我正在使用NSFetchedResultsController
从Core Data填充UITableView
。这些数据来自Mogenerator生成的名为MenuItem的NSManagedObject
子类。 MenuItem实体的SectionID参数是NSNumber
,这用于确定该项目应在表格视图内的哪个部分。Mogenerator with NSFetchedResultsController - 0部分
我对数据执行了测试提取并确认核心数据已正确填充。一切都很好。
的NSFetchedResultsController
按如下方式创建和sectionKeyNamePath
设置为@ “sectionId”:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MenuItem" inManagedObjectContext:self.persistenceController.moc];
[fetchRequest setEntity:entity];
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"sectionId" ascending:YES], [NSSortDescriptor sortDescriptorWithKey:@"rowId" ascending:YES]];
NSFetchedResultsController *frc = nil;
frc = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.persistenceController.moc
sectionNameKeyPath:@"sectionId"
cacheName:nil];
的问题(和溶液):
利用该代码,这些部分没有被识别。 NSFetchedResultsController
总是返回0.这在以前我手动创建NSMO子类时工作过,所以我认为它与Mogenerator有关。
如果我将sectionNameKeyPath更改为@“primitiveSectionId”,那么它就起作用。
希望这将有助于未来的某个人,但我不明白这里发生了什么。请有人可以解释为什么这解决了这个问题?
谢谢