0

複数のエンティティがあるアプリケーションを作成していますが、3番目のコンボボックスのコンテンツを動的にフィルタリングする必要があります。私は自分自身をよりよく説明します。3つのコンボボックス(建物、フロア、部門)があり、最初に含まれているすべての建物を表示したいのですが、2番目は建物の計画の前に選択したものだけを表示し、最後は建物の部門のみを選択する必要がありますそしてあなたが選ぶ計画。これどうやってするの?写真の添付を簡単にするため。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

4

1 に答える 1

0

Core Dataへの単一のフェッチ要求を使用する場合は、述語を使用してドリルダウンするだけです。

ただし、関係が正しく設定されていません。たとえば、にedificio属性がありますParticelle。建物を指す場合は、ある種の外部キーではなく、オブジェクトとの関係である必要があります。EdificiCore Dataには外部キーはなく、関係だけがあります。

これを行うと、を使用することですべてがはるかに簡単になりますNSFetchedResultsController。これで、特定のフェッチを行わなくても、オブジェクトグラフを簡単にトラバースできます。

スキームは次のようになります(おそらく順序を変更する必要があります):

Anno <--->> Particella <---->> Edificio <---->> AreaRischio

Annoこれで、フェッチされた結果コントローラーにすべてのエンティティのフェッチを開始するように指示するだけで済みます。次に、単純なドット表記でドリルダウンします。

NSSet *listForNextTable = selectedAnnoObject.particelle; 

そしてさらに

NSSet *listForNextTable = selectedParticellaObject.edifici;

ほら、それは本当に簡単になります。

于 2012-11-26T15:28:26.913 に答える