部屋を検索して予約できるアプリがあります。
最初のビューでは、都市と通りを選択できます。2 番目のビューでは、いくつかの属性 (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))
通りと属性で部屋をフィルタリングできます。.しかし、属性が選択されていない場合、選択した通りに部屋が表示されません。
ここに私の更新されたスキーマのスクリーンショットがあります:スクリーンショット