ios - 对核心数据中的相关实体进行排序

标签 ios objective-c xcode sorting core-data

我的核心数据模型中有两个实体。作者和书籍。一个作者可以拥有很多本书。 这是我整理出来的部分。一切正常。

现在我想按字母顺序获取我的作者:

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/

相关文章:

ios - 在 Xcode 7 中,我怎样才能拥有同名的静态库目标和框架目标?

ios - 在 iOS 中向 TableView 单元格添加虚线底部边框与文本随机重叠

javascript - 在 TestFlight 上测试 React Native App

ios - 计算 iPhone 移动的短垂直距离

python - 以编程方式修改某人的 AppDelegate - 类别,子类?

iphone - 在 iPhone 的 Objective-C 中从 Rails 解析 JSON 集合

ios - 在我的 iOS 应用程序的本地通知中实现振动和声音设置

ios - SwiftUI:在 macOS Mojave 上聚焦 TextField 时,应用程序在模拟器中挂起

xcode - 具有多目标项目的 XCTest

ios - "Over Current Context"选项在 Xcode Storyboard 中不可用?