私は1対多の親子エンティティを持っています本<->>借りる
本
- 名前
- 借りる(関係)
かりて
- BorrowDate
- ノート
- 本(関係)
NSFetchedResultsController
子エンティティの最大数を使用してBookエンティティを並べ替えて、NSDate
最近借りた本を表示したいと思います。
これどうやってするの ?本のカテゴリを使用して、このような独自の方法を使用してみました
- (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(今日のborrowDate)
- 書籍名2(昨日borrowDate)
- 書籍名3(何日も前のborrowDate)