我有一个应用程序,我可以搜索一个房间来预订它。
在我的第一个视图中,我可以选择一个城市和街道。 在第二个视图中,我可以选择一些属性(如wlan,tv ......)
在第3个视图中是可供选择的房间。
当我没有选择属性时,它应该显示所有可用于所选街道/城市的房间。
到目前为止,这是我的谓词:
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 :(得分:0)
您错误地将核心数据框架(一个对象图)与SQL数据库替代品混为一谈。这可以讨论 ad nauseam ,所以我们不要进入哲学讨论。
从问题描述中执行此操作的正确方法是按街道过滤房间,然后在结果中迭代以排除那些没有检查属性的房间。生成的数组可能是结果表的datasource
。
但是,从您的代码示例以及我观察到的德语实体和属性名称,您似乎应该考虑修改数据结构。如果您编辑问题并发布数据模型方案,我可以给您进一步的评论。