我的核心数据模型中有两个实体。作者和书籍。一个作者可以拥有很多本书。 这是我整理出来的部分。一切正常。
现在我想按字母顺序获取我的作者:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Author" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];
[fetchRequest setSortDescriptors:sortDescriptors];
到目前为止没有问题。但现在我想获取作者的所有书籍,按发行日期排序。 当我使用以下代码行获取作者的书籍时......
self.selectedAuthor.books.allObjects
……书籍的顺序似乎完全是随机的。
我的问题:
从核心数据获取对象的相关实体时如何对其进行排序,以便每次我使用 self.selectedAuthor.books.allObjects 时,所有书籍都按(例如)发布日期排序?
最佳答案
您可以将方法 - (NSArray *)booksSortedByDate;
添加到 Author 类接口(interface),并在实现中编写如下代码:
- (NSArray *)booksSortedByDate {
return [self.books.allObjects sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"releaseDate" ascending:YES]]];
}
关于ios - 对核心数据中的相关实体进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19510665/