2014-10-10 42 views
1

有人可以幫助這個核心數據排序崩潰?NSSortDescriptor崩潰 - 斯威夫特

這是我的代碼的副本。

private func populateTableView() { 
    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate 
    let context: NSManagedObjectContext = appDel.managedObjectContext! 
    let freq = NSFetchRequest(entityName: "List") 

    let sortDescriptor = NSSortDescriptor(key: "date", ascending: true) 
    let sortDescriptors = [sortDescriptor] 
    freq.sortDescriptors = [sortDescriptors] 

    if selectedGroup > 0 { 
     let predicate:NSPredicate = NSPredicate(format: "group == \(selectedGroup)") 
     freq.predicate = predicate 
    } 

    myList = context.executeFetchRequest(freq, error: nil)! 
    tableView.reloadData() 
} 

沒有這些行它的偉大工程,只是未排序:

let sortDescriptor = NSSortDescriptor(key: "date", ascending: true) 
let sortDescriptors = [sortDescriptor] 
freq.sortDescriptors = [sortDescriptors] 

然而,當我加分選我收到以下錯誤:

2014-10-10 19:34:13.669 Test2[2079:960565] -[_TtCSs23_ContiguousArrayStorage000000013EE1A1C0 key]: unrecognized selector sent to instance 0x170240f90 2014-10-10 19:34:13.670 Test2[2079:960565] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_TtCSs23_ContiguousArrayStorage000000013EE1A1C0 key]: unrecognized selector sent to instance 0x170240f90' * First throw call stack: (0x187d5e084 0x1983440e4 0x187d65094 0x187d61e48 0x187c6708c 0x187a35c04 0x187a1b4e0 0x187b054f8 0x187a18254 0x187a17e60 0x187a1756c 0x187a16fe4 0x187adddc0 0x187ae5654 0x100550ee0 0x10055a95c 0x187ad8cb4 0x187a16c34 0x187a15744 0x100089fb8 0x1000897ac 0x1000897f4 0x18c4f7c20 0x18c5af508 0x18c4f7c20 0x18c562f94 0x18c562efc 0x18c4d49e8 0x187d16388 0x187d13314 0x187d136f4 0x187c41664 0x190d835a4 0x18c5464f8 0x10009a218 0x10009a258 0x1989b2a08) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)

這裏是我的模型:

import UIKit 
import CoreData 

@objc(Model) 
class Model: NSManagedObject { 
    // properties feeding the attributes in our entity 
    // must match the entity attributes 
    @NSManaged var item: String 
    @NSManaged var group: String 
    @NSManaged var info: String 
    @NSManaged var date: NSDate 
    @NSManaged var image: NSData 
} 

謝謝。

回答

1

固定。

原來只有以下是必需的:

var sortDescriptor = NSSortDescriptor(key: "date", ascending: true) 
freq.sortDescriptors = [sortDescriptor] 
+0

你的原始代碼被傳遞NSSortDescriptors的數組的數組,ONL NSSortDescriptors的陣列被允許/需要。我還注意到你的類被命名爲Model,而你的實體似乎被命名爲List。你可能想解決這個問題。 – 2014-10-12 05:39:07