2011-12-25 5 views
2

いくつかのオブジェクトを含むNSArrayがあります。別のNSArrayのおかげでNSArrayソーティング

NSArray *firstArray = [NSArray arrayWithObjects:obj, plop, color, shape, nil];

今、私は別のNSArrayのが最初にNSArrayからのオブジェクトのみを含む、ではなく、同じ順序で持っています。

NSArray *secondArray = [NSArray arrayWithObjects: shape, color, plop, nil];

私はそのfirstArrayとで同じ順序でsecondArrayをソートしたいと思います。私はsecondArrayになりたい

  • プロップ
  • カラー
  • 形状

答えて

0

は、通常、これは私が自動的にApple's NSSortDescriptor Classに人々を指すと思いれるものの一種であるが、あなたは何をしているかのように非常にアプリケーション&オブジェクト固有のように聞こえる。

あなたの形、色やオブジェクトをウンチが真のCocoaオブジェクト(すなわちthey respond to isKindOfClass selectors)であれば、あなたはあなたのsecondArrayの各部分を通過し、新しい可変配列を作成する(のが、引数のためにthirdArrayそれを呼びましょう)と上で列挙を使用することができますsecondArrayの要素を使用して、それぞれのオブジェクトを探している形式でthirdArrayに挿入します。

+0

答えていただきありがとうございます;)実際には、これらのオブジェクトは同じCocoaクラスに由来しています。私はそれを見て、ありがとう;) – Aladin

+0

しかし、[firstArray indexOfObject:(id)]と比較する方法はありますか? – Aladin

+0

'secondArray'と' firstArray'の両方に格納したオブジェクトの型を判別する方法を知っています。または、配列に格納されている各オブジェクトの内容(つまり、別のNSStringまたはNSNumberまたは?と比較しているNSString)について話していますか? –

1

NSArrayは既に注文されていますので、あなたの好きなところで使うことができます:なぜfirstArray内にあるオブジェクトが検索されますが、secondArray内では検索されません。

NSMutableArray *arrayObjectsInFirstArrayNotInSecondArray = [NSMutableArray arrayWithArray:firstArray]; 
[arrayObjectsInFirstArrayNotInSecondArray removeObjectsInArray:secondArray]; 

NSMutableArray *solution = [NSMutableArray arrayWithArray:firstArray]; 
[solution removeObjectsInArray:arrayObjectsInFirstArrayNotInSecondArray];