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)) 

我可以用街道和属性过滤房间。.但是当没有选择属性时,我在所选街道上看不到任何房间。

这是我更新的架构的屏幕截图:屏幕截图

4

1 回答 1

0

您将核心数据框架(对象图)误认为是 SQL 数据库替代品。这可能会令人作呕,所以我们不要进入哲学讨论。

从问题描述中执行此操作的正确方法是按街道过滤房间,然后遍历结果以排除那些没有选中属性的房间。结果数组可能是datasource您的结果表。

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

于 2012-04-05T11:28:44.380 回答