Iphone 具有对多关系的复杂谓词无法正常工作

Iphone 具有对多关系的复杂谓词无法正常工作,iphone,ios,xcode,core-data,nspredicate,Iphone,Ios,Xcode,Core Data,Nspredicate,我有一个可以搜索房间预订的应用程序 在我的第一个视图中,我可以选择城市和街道。 在第二个视图中,我可以选择一些属性(如wlan、tv…) 在第三视图中是可供选择的房间 当我没有选择属性时,它应该显示可用于所选街道/城市的所有房间 到目前为止,我的谓词如下: NSPredicate *predicate = [NSPredicate predicateWithFormat: @"((raumattribute.schalter CONTAINS YES) AND\ (strasse.ch

我有一个可以搜索房间预订的应用程序

在我的第一个视图中,我可以选择城市和街道。 在第二个视图中,我可以选择一些属性(如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)) 
我可以用街道和属性过滤房间。但如果未选择任何属性,则在所选街道上看不到任何房间


这是我更新的模式的屏幕截图:

你把核心数据框架(一个对象图)错当成了SQL数据库的替代品。这可能会引起激烈的争论,所以我们不要进入哲学讨论

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


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

屏幕截图不完整。非常混乱。有关修复显示错误的信息,请参阅。