NSArray と NSMutableArray の ソート方法

Pocket

NSArray と NSMutableArray の ソート方法をメモっとく。
出来てしまえば大した事ではないんだけど、結構時間とられた。。。

 

検索するとよく見かけるのが、比較関数を用意する方法です。

Sun Limited Mt.「NSArray のソート方法」

 

ですが、ちと面倒くさいなぁと思いながらよく見ると別の方法の照会が

蒼い惑星: NSArrayのソート方法について

CoreData の NSFetchedResultsController でよく使う NSSortDescriptor が NSArray でも使えるんですね〜

こちらの方が個人的にはしっくりきます。

 

で、ソートした配列の内容を変更しようと思ったのですが、NSArray は変更できません。。。。

 

そんな場合は NSMutableArray を使用します。

NSMutableArrayクラスは、NSArrayを可変としたい場合に使用するクラスで、NSArrayを継承していますので、NSArrayのメソッドはそのまま使用できます。

 

ところが、いざ配列の内容を変更し replaceObjectAtIndex を呼び出すとこんなエラーが。。。

 

unrecognized selector sent to instance 0xdb0a3e0

 

これでもソートはされているのだが、どうやら配列をコピーしたり NSArray から NSMutableArray をキャストした時点で mudable ではなくなるらしいです。

 

とすることで、動作するようになりました!!

 

でなくて mutableCopy でもOKです!

 

 

NSArray と NSMutableArray の ソート方法」への1件のフィードバック

  1. ピンバック: 辞書が格納されたNSMutableArrayをソートする方法 | イロハニホヘドット

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

認証コードを入力して下さい * Time limit is exhausted. Please reload the CAPTCHA.