如何使用谓词创建数组?

How to create array using predicates?

我有一个 NSCollectionView 和一个带有文件夹的边栏。每个文件夹都是核心数据中的一个对象,与它的所有单个文件都有关系。选择一个文件夹后,我想创建一个文件数组(属于特定文件夹)并将它们显示在 NSCollectionView 中。几天来我一直在研究核心数据,我认为使用谓词是最好的选择,但我不完全确定,因为我以前从未真正使用过谓词。 (我还在用 Swift 3.0)

JuggleItems -> 文件夹。 JFiles -> 文件夹内的文件。

JuggleItems JFiles

如果您在 Folder 对象和它包含的文件之间创建了一对多关系,那么您似乎不必为文件执行单独的提取,因为您应该能够只需说 folder.files(或任何你命名由关系创建的 NSSet 即可访问它们。)当然 folder.files 将是 NSSet,而不是 [=15] =],但您可以说 folder.files.allObjectsArray 形式获取它们。

如果您能展示您的 Core Data 文件夹和文件对象的样子,我们将能够提供更准确的建议。