2016-07-21 4 views
2

コアデータを検索しようとしていますが、デフォルトでタイトル属性を検索していますが、結果を並べ替える必要があります。dateコアデータの属性を日付と文字の両方でソート

私のコードはtitle属性を検索しますが、predicatesを2つ作成してcontextと接続するにはどうすればよいですか?

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 

    let currentText = textField.text ?? "" 
    let prospectiveText = (currentText as NSString).stringByReplacingCharactersInRange(range, withString: string) 

    //Load data from Core Data 
    let appDel : AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    context = appDel.managedObjectContext 

    do { 

     request = NSFetchRequest(entityName: "Event") 
     let sort:NSSortDescriptor = NSSortDescriptor(key:"title", ascending: true) 
     request.sortDescriptors = [sort] 
     let searchPredicate = NSPredicate(format: "title CONTAINS[c] %@", prospectiveText) 
     request.predicate = searchPredicate 
     results = try context.executeFetchRequest(request) 

     animateTableCell() 


    } catch { 

     print("ERROR") 
    } 

    return true; 
} 

答えて

2

それはあなたがをソート選択に面白いですか100%明確ではありません。述語はどのレコードを選択するかを決定するために使用され、ソート記述子は結果をソートするために使用されます。

ソートの場合、request.sortDescriptorsはディスクリプタの配列です。だから、例えば、複数の記述子を持つことができます。

let sort:NSSortDescriptor = NSSortDescriptor(key:"title", ascending: true) 
let sort2:NSSortDescriptor = NSSortDescriptor(key:"date", ascending: false) 
request.sortDescriptors = [sort, sort2] 

は、(すなわち、同じタイトルのこれらの項目は、日付の降順でなければなりません)日付を降順、昇順タイトルでソートする必要があります。

+0

私はちょうど 'date'でソートしています –

関連する問題