我有一对多的父子实体书<->>借
书
- 姓名
- 借(关系)
借
- 借用日期
- 笔记
- 书(关系)
我想NSFetchedResultsController
使用最大NSDate
的子实体对 Book 实体进行排序,以显示最近借过的书。
我怎样才能做到这一点 ?我尝试使用我自己的方法,使用 Book 上的 Category
- (NSArray *)borrowSortedByborrowedDate
{
NSSortDescriptor *sortByCreatedDate = [NSSortDescriptor sortDescriptorWithKey:@"borrowDate" ascending:NO];
NSArray *sortedArray = [self.histories sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortByCreatedDate]];
return sortedArray;
}
- (NSDate *)recentBorrowDate
{
Borrow *borrow = [[self borrowSortedByborrowedDate] objectAtIndex:0];
return borrow.borrowDate;
}
并将其放入sortDescriptor
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"recentBorrowDate" ascending:YES];
但它没有用。
这是我获取的请求(没有用)
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Book" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"recentBorrowDate" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
我的预期结果是
- 书名1(借到今天)
- 书名2 (borrowDate昨天)
- 书名3(borrowDate很多天前)