Realmを勉強中です。

サンプルやマニュアルを見ているのですが、いまいちわからず・・・

ID 読み 登録データ Time
1 かお (^^) 2010-01-01 00:00:00
2 かお (^^; 2010-01-01 00:00:01

上記データで、Timeでソートしながら「か」で「(^^)」と「(^^;」などのデータを読みだしたいのです。

下記コードはリスト化とソートがわからずに書いています。

そして、使った行のTimeだけ現在時刻で更新したいのです。

わかる方、教えていただけたら幸いです。

よろしくお願いいたします。

import UIKit
import Foundation
import RealmSwift
extension String : CollectionType {}

class dic: Object {
    dynamic var ID = 0
    dynamic var yomi = ""
    dynamic var emoji = ""
    dynamic var date = NSDate(timeIntervalSince1970: 1)

    override static func primaryKey() -> String? {
        return "ID"
    }
}

class KeyboardViewController: UIInputViewController {
    var DBdir = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)

・・・

    override func viewDidLoad() {
        super.viewDidLoad()
    ・・・
    }

・・・

    func btnDown11(sender: UIButton){
        self.button11.backgroundColor = UIColor.blackColor()
    }
    func btnUp11(sender: AnyObject){
        self.button11.backgroundColor = UIColor.whiteColor()
            tText = "か"
            InsertText(tText)
     }

     func btnDownEnter(sender: UIButton){
        self.buttonEnter.backgroundColor = UIColor.blackColor()
     }

    func btnUpEnter(sender: UIButton){
         self.buttonEnter.backgroundColor = UIColor(red: 0.1, green: 0.5, blue: 0.7, alpha: 1.0)
         let proxy = textDocumentProxy
         proxy.insertText("\n")
         //この辺で唯一の使ったデータの日時更新
        dic.date = dateFormatter.dateFromString("2014-01-01 00:00:03")!; //日時後日固定でなく自動取得に変更
        do {
            let realm = try Realm(path: realmPath)

            realm.write {
                realm.add(dic)
           }
        } catch {
            print("error")
        }

    }


    ・・・

    func InsertText (str: String){
        tText = ""
        //この辺で変換「リスト」の取得
        // Query using a predicate string
        var tanDic = dic.objectsWhere("color = 'str' AND name BEGINSWITH 'B'")

        // Query using an NSPredicate object
        let predicate = NSPredicate(format: "読み = %@ AND name BEGINSWITH %@", str, "B")
        tanDic = Dog.objectsWithPredicate(predicate)
        //ここでリスト表示            
        print(tanDic)

        let proxy = textDocumentProxy
        proxy.insertText(str)
     }

}