NSFetchedResultController按关系部分?

时间:2015-08-05 20:24:34

标签: ios objective-c uitableview core-data nsfetchedresultscontroller

我有一个以NSFetchedResultController作为数据源的tableview。我有两个像这样的实体

Book:
(NSString*)name
(Library*)library

Library:
(NSString*)name
(NSSet)books
-addBookObject:(Book*)book;

我想让tableview显示按库关系分组的Book实体的所有数据。目前,只有1个图书馆,所以只有2个部分。 book.library == nil的书籍将出现在第0部分的顶部,具有库的书籍将出现在第二部分中。

我尝试了这个,但没有工作

NSFetchRequest *request = [[NSFetchRequest alloc]initWithEntityName:@"Books"];
request.sortDescriptors = @[[[NSSortDescriptor alloc]initWithKey:@"library" ascending:YES]];
NSFetchedResultsController *returnFetchRC = [[NSFetchedResultsController alloc]initWithFetchRequest:request managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"library" cacheName:nil];

我该怎么做?感谢

编辑:

它不起作用,因为某些library对象中的某些nilbook。我必须向book实体添加一个isInLibrary属性标志,并将默认值设置为NO,然后将sectionNameKeyPath排序并设置为new属性以使其工作。那解决方案并不漂亮。反正有没有让FRC按照可能为零的关系进行分组?

0 个答案:

没有答案