0

部屋を検索して予約できるアプリがあります。

最初のビューでは、都市と通りを選択できます。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)) 

通りと属性で部屋をフィルタリングできます。.しかし、属性が選択されていない場合、選択した通りに部屋が表示されません。

ここに私の更新されたスキーマのスクリーンショットがあります:スクリーンショット

4

1 に答える 1

0

オブジェクトグラフであるコアデータフレームワークをSQLデータベースの代替品と間違えています。これはうんざりするような議論になる可能性があるので、哲学的な議論には立ち入らないようにしましょう。

問題の説明からこれを行う適切な方法は、部屋を通りでフィルタリングし、結果を繰り返し処理して、チェックされた属性を持たない部屋を除外することです。結果の配列はdatasource、結果のテーブルの可能性があります。

ただし、コード例と、私が観察しているドイツ語のエンティティと属性の名前から、データ構造の修正を検討する必要があるようです。質問を編集し、データ モデル スキームも投稿していただければ、さらにコメントを差し上げることができます。

于 2012-04-05T11:28:44.380 に答える