我想实现类似于iTunes浏览器的东西,以浏览一个简单的书籍数据库。我有以下实体- 作者,类型和书籍。我想显示一个作者列表和一个类型列表,它们可以作为过滤主要书籍列表的作用。
我已经尝试了两种不同的方式来建模:
我已经尝试了两种不同的方式来建模:
Author ( has many ) Genres ( has many ) Books
我有多个相同流派的实例,所以每个作者都有自己的流派名称,我有一个不错的下钻层次结构可以在我的表视图中显示(尽管复制流派有点不合逻辑)。然而,当我选择多个作者时,我最终会显示相同流派的重复内容,因为它们实际上是不同的对象。
因此,我尝试使用以下关系更明智地完成:
我可以通过对当前选择的作者书籍数组中Genre取不同的并集来获取Genre数组,但现在我面临一个问题,即如何根据所选的Genre筛选显示的书籍列表。因为Genre是共享的,所以我不能只使用CurrentGenre.books,否则我就会失去所选作者的过滤。我注意到了接口构建器中对象控制器上可用的“过滤谓词”字段,但卡在了如何实际使用它将所选的Genre应用为过滤器以筛选剧集列表。苹果文档说:Author ( has many ) Books Book ( has one ) Genre
“您可以直接将谓词键入 到Interface Builder的检查器面板中的谓词编辑器文本字段中, 或者您可以使用setFetchPredicate:编程方式设置它。
这让我觉得我在正确的轨道上,但这也是它的尽头。我现在正在试图以漂亮的Cocoa风格锁定模型,以便最小化后续的“胶水代码”和更改。这似乎是一个相当简单的问题,我应该能够在IB中以图形方式解决它,但到目前为止,它已经使我束手无策了!
提前致谢。