Swift で NSMutableArrayに追加した Object を NSSortDescriptor 使ってソートします。
- 作るオブジェクトは NSObject を継承します
- 今回は、日付(NSDate)でソートします
Arrayの違い
- NSArray:変更不可
- NSMutableArray:変更可能
実際のSwiftのコード(元のNSMutableArrayを書き換え)
追記
tomohisaotaさんに指摘されて、もう少し調べてみました
import UIKit
class Memo:NSObject {
var title = "無題"
var created_at = NSDate()
init(title:String) {
self.title = title
}
}
var _memos = NSMutableArray()
for key in 1...10 {
var title = "繰り返し" + String(key)
var memo = Memo(title:title)
_memos.addObject(memo)
}
let sort_descriptor1:NSSortDescriptor = NSSortDescriptor(key:"created_at", ascending:false)
_memos.sortUsingDescriptors([sort_descriptor1])
for key in 0...9 {
var memo:Memo = _memos.objectAtIndex(key) as Memo
println(memo.title)
}
実際のSwiftのコード(戻り値がArray)
import UIKit
class Memo:NSObject {
var title = "無題"
var created_at = NSDate()
init(title:String) {
self.title = title
}
}
var _memos = NSMutableArray()
for key in 1...10 {
var title = "繰り返し" + String(key)
var memo = Memo(title:title)
_memos.addObject(memo)
}
let sort_descriptor:NSSortDescriptor = NSSortDescriptor(key:"created_at", ascending:false)
let sorts = [sort_descriptor]
let memos = _memos.sortedArrayUsingDescriptors(sorts) as NSArray
for key in 0...9 {
var memo:Memo = memos.objectAtIndex(key) as Memo
println(memo.title)
}