1

この種のケースを並べ替える方法は?

  1. 私は持っていNSMutableArrayます。
  2. NSMutableArrayはオブジェクトまたは。を持つことができますNSMutableDictionary
  3. NSMutableDictionaryのオブジェクトは1つだけです(オブジェクトをオブジェクトとして、文字列をキーとして)
  4. 両方のオブジェクトは同じであり、属性がありますname

さて、私が苦労しているのはNSMutableArray、辞書のキーとオブジェクトのキーに基づいて並べ替えたいということnameです。(に追加されたオブジェクトは無視しましょうNSMutableArray

人に感謝することで、この問題を解決する方法を知ることができます。

4

1 に答える 1

0

NSObjectのカスタムサブクラスにを追加NSMutableArrayし、次のようにカスタムNSComparatorを使用して並べ替えます。

(NSComparator)^(id obj1, id obj2){ /* obj1 and obj2 are NSMutableArrays */
      if ([obj1 objectAtIndex:1] isKindOfClass:[NSMutableDictionary class]) {
           // sort according to the dictionary case
      } else { // [obj1 objectAtIndex:1] isKindOfClass:[NSObject class]
           // sort according to the your other, default case
      }
}

これはテストされておらず、ifおよびelseステートメントの本文に入力する必要があることに注意してください。else句によるコメントは、私がコーディングする方法であり、好みに合わない場合は削除できます。

于 2012-12-21T04:48:35.457 に答える