Swift

Swift:ソート実装完了

ソートの実装をするためにNSMutableArrayをNSMutableDictionaryに変更しました。

変更した理由は、NSMutableArrayでソートする方法がわからなかったからです。きのう、あれこれ調べたのですが、答えにたどり着けませんでした。

それで、昔、実装したことのあるNSDictionaryを参考にして、データ構造をすべてNSMutableArrayに変更しました。よく考えてみると、この方がアクセスしやすいし、コードを読みやすいので、最初からDictionary形式にすべきだったのかもしれません。

まだ、ソートのテストは完全に終わっていません。一通り動いています。注意事項として、ソート後に配列に戻す必要がありました。

前提:

  • A.rcArrayがNSMutableDictionaryです。
  • pIdentifierはNSMutableDictionaryのキー (identifier)
  • pSeqはtrue(正順)、false(正順でない)
  • 逆順はA.rcArray = A.rcArray.reverse()で行う。

コード:

func ExecSort(pIdentifier:String, pSeq:Bool)    
let sortDescriptor:NSSortDescriptor = NSSortDescriptor(key:pIdentifier, ascending:pSeq, selector: #selector(NSString.caseInsensitiveCompare(_:)))
let sortedResult: NSArray = (A.rcArray as NSArray).sortedArrayUsingDescriptors([sortDescriptor])
A.rcArray       = [] //ソート結果をwkArrayに戻す。
for inx in 0..<sortedResult.count {                                            A.rcArray.append(sortedResult[inx] as! NSMutableDictionary)
}
xTableView?.reloadData()
}