2012-03-22 3 views
1

、その中に他のオブジェクトのNSArrayを含むNSArrayオブジェクトがあります。 Arrayを繰り返し処理することなく、内部配列からオブジェクトのリストを抽出することは可能ですか?たとえば、NSpredicateまたはvalueForKeyPathを指定します。明確にするために、私は:ARCを使用しているiOS 5.0アプリケーションでは、別のNSArray内のNSArrayからオブジェクトを取得する場合は

NSArray *objtype1 contains 
     -id 
     -NSArray *imageObjs containing imageObjects 
         -imagetype = 1 <--1st imageObject 
         imageURL1 
         -imagetype = 2 <--2nd imageObject 
         imageURL2 
     -NSArray *objtype2 
     -other parameters 

Iはさらなる処理のために渡す= 1 imageObjectsのimageTypeのにNSArrayを抽出する必要があります。これは可能ですか? (私はNSpredicateとvalueForKeyPathを見ていますが、まだ何も見つかりませんでした)

+0

親配列ではなく、id、nsarray、nsarrayなどのプロパティを持つクラスにする必要があります。 – sosborn

+0

私は@sosbornに同意します。あなたが簡単にNSクラスに収まらないデータ構造を持っているときは、あなた自身で作成してください。それに素敵なきれいなインターフェースを与えてください。そうすれば、あなたは店のいたるところにコードを散らして、このプロパティにアクセスすることはありません。 –

答えて

1

私はまだ何も見つけられていない理由はそこにないからだと思います。述語を再帰的に使用するには、NSArrayに独自のカテゴリを実装することができます。他の誰かがすでにそれをしている可能性があります。知りません。

1

Ummmmmあなたがしていることについて少し不明なようです。複数の型のNSArrayがあるようです。そして、内部にimageObjs配列が必要です。

このようなNSArrayがある場合は、それをNSDictionaryに変換するのが記念碑的に簡単です。次に、[dictionary valueForKey:@"Image Array"];を使用してイメージ配列を取得できます。

現在、imageObjs配列を取得するソリューションは[objtype1 objectAtIndex:1];であり、その配列を反復処理してimageObjectsを使用します。

for(ImageObject *obj in arr) { 
    //do stuff 
} 
+1

ummmm、downvote、なぜ? – ColdLogic

関連する問題