我正在使用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」,那麼它就起作用。
希望這將有助於未來的某個人,但我不明白這裏發生了什麼。請有人可以解釋爲什麼這解決了這個問題?
謝謝