我有一个看起来像这样的模型:
并希望UITableView
使用NSFetchedResultsController
. 我想列出Object
给定的所有 s Owner
,按Group
. 例如,如果我们要查看某个所有者Owner A
的组,表格视图可能如下所示:
Group A
Object A
Object B
Object C
Group B
Object A
Object D
Group C
Group D
Object C
Object E
同样重要的是,组按其name
属性排序(上面的架构中未显示),并且NSFetchedResultsController
每当对象被修改或从组中添加/删除时,都会调用委托方法。
鉴于这些要求,我设置了sNSFetchedResultsController
来获取一堆Object
带有谓词 like 的 s [NSPredicate predicateWithFormat:@"ANY groups.owner = %@", someOwner]
,这会引发NSInvalidArgumentException
异常:“此处不允许使用多键”。我尝试了其他一些谓词,但被卡住了。
有什么建议么?这不是我应该使用的东西NSFetchedResultsController
吗?或者有没有更好的方法来建模我的数据?
谢谢!
编辑:我实际上得到了使用上述代码的谓词,我的错误在于我的sectionNameKeyPath
论点。我试图通过groups.name
,这是产生错误的原因。我明白为什么这种方式行不通,但我正在努力寻找一种不同的方式来达到预期的效果。也许是一个连接对象?
编辑 2:这对于像这样的连接对象有点效果:
我现在看到有两个缺点。首先是我必须自己使用代码强制执行唯一性。这很容易,但有点麻烦。第二个缺点,我还没有看到解决方法,是NSFetchedResultsController
不会再调用它的委托来更新Objects
。我现在可以忍受这个缺点,但很高兴听到更好的建议。