2012-04-05 48 views
0

我有一个应用程序,我可以搜索一个房间来预订它。复杂的谓词与多对多的关系无法正常工作

在我的第一视图中,我可以选择一个城市和街道。 在第二个视图中,我可以选择一些属性(如wlan,tv ...)

在第三个视图中,可供选择的房间。

当我没有选择一个属性时,它应该显示所有可用于所选街道/城市的房间。

这是迄今为止我断言:

NSPredicate *predicate = 
[NSPredicate predicateWithFormat: 
@"((raumattribute.schalter CONTAINS YES) AND\ 
(strasse.checks CONTAINS YES OR strasse.standort.ortcheck CONTAINS YES)) \ 
OR\ 
((raumattribute.schalter CONTAINS NO) AND\ 
(strasse.checks CONTAINS YES OR strasse.standort.ortcheck CONTAINS YES))"]; 

的问题是,我不能再与属性过滤室。当我选择城市并去房间时,我可以看到城市中的所有房间。 但是,只要我选择一个属性,它不会过滤房间,但会显示所选城市中的所有房间。

当我写我的谓词是这样的:

NSPredicate *predicate = 

[NSPredicate predicateWithFormat: 
@"((raumattribute.schalter CONTAINS YES) AND\ 
(strasse.checks CONTAINS YES OR strasse.standort.ortcheck CONTAINS YES)) 

我可以过滤与街道和属性的房间。但如果未选择任何属性,则无法在所选街道中看到任何房间。

这里是我更新的模式的截图:Screenshot

回答

0

你弄错了核心数据框架,这是一个对象图,用SQL数据库的替代品。这可以辩论ad nauseam所以我们不要进入哲学讨论。

的正确方法从您的问题描述做到这一点是通过结果来过滤通过街道的客房然后迭代排除那些没有选中的属性。结果数组可能是结果表的datasource

但是,从您的代码示例以及我所观察的德国实体和属性名称来看,您似乎应该考虑修改您的数据结构。如果你编辑你的问题,并发布你的数据模型方案,我可以给你进一步的意见。

+0

我编辑我的帖子。在此先感谢 – 2012-04-05 11:45:08

+0

截图不完整。很混乱。有关修复显示错误的信息,请参见[本文](http://stackoverflow.com/questions/10026349/xcode-data-model-problems-with-appearance-in-editor/10028027#10028027)。 – Mundi 2012-04-05 11:53:14

+0

好的,对不起,我上传了一个新的截图 – 2012-04-05 12:08:01