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