【发布时间】:2010-02-17 02:21:15
【问题描述】:
我正在尝试实现类似于 iTunes 浏览器的功能,以浏览一个简单的图书数据库。我有以下实体 - Author、Genre 和 Book。我想显示一个作者列表和一个流派列表,用于过滤主图书列表。
我曾尝试以 2 种不同的方式执行此操作 - 建模为:
Author ( has many ) Genres ( has many ) Books
...具有相同流派的多个实例,因此每个作者都有自己的给定流派名称,我有一个很好的向下钻取层次结构显示在我的表视图中(尽管复制流派有点不合逻辑)。但是,当我选择多个作者时,我最终会显示相同类型的副本,因为它们实际上是不同的对象。
所以,我尝试更明智地处理这些关系:
Author ( has many ) Books Book ( has one ) Genre
我可以通过在当前选定的 Author(s) book 数组中获取 Genre 的不同并集来获取 Genre 数组,但是现在我遇到了根据选定的 Genre 过滤显示的书籍列表的问题.因为流派是共享的,所以我不能只使用 CurrentGenre.books,否则我会丢失选定的作者过滤。我注意到界面构建器中的“过滤器谓词”字段,可在对象控制器上使用,但我一直在研究如何实际使用它来将选定的流派作为过滤器应用于剧集列表。 The apple documentation 说:
"您可以直接键入谓词 进入谓词编辑器文本字段 在界面的检查面板中 生成器,或者您可以设置它 以编程方式使用 setFetchPredicate:.
这给我的印象是我在正确的轨道上,但这就是它的结束。我现在正试图以一种不错的 Cocoa 风格锁定模型,以便最大限度地减少“胶水代码”位和以后的更改。这似乎是一个相当简单的问题,我应该能够在 IB 中以图形方式解决,但到目前为止它还没有解决!
提前致谢。
【问题讨论】:
标签: cocoa core-data cocoa-bindings