2015-04-23 35 views
1

我想排序低於對象的數組是我的函數對象的數組排序[valueForUndefinedKey:]:此類不是密鑰約定編碼密鑰約定日期。' - 迅速

class func Fn_SortByParameter(arrayToSort:NSMutableArray,paramName:NSString!, isAscending:Bool!){ 
    var sortDescriptor:NSSortDescriptor = NSSortDescriptor(key: paramName, ascending: isAscending, selector: Selector("localizedCompare:")) 
    var sortDescriptors:NSArray = NSArray(object: sortDescriptor) 
    var sortedArray:NSArray = arrayToSort.sortedArrayUsingDescriptors(sortDescriptors) 
    arrayToSort.removeAllObjects() 
    arrayToSort.addObjectsFromArray(sortedArray) 
} 

class func Fn_SortByParameter(arrayToSort:NSMutableArray,paramName:NSString!, isAscending:Bool!){ 
    var sortDescriptor:NSSortDescriptor = NSSortDescriptor(key: paramName, ascending: isAscending) 
    var sortDescriptors:NSArray = NSArray(object: sortDescriptor) 
    var sortedArray:NSArray = arrayToSort.sortedArrayUsingDescriptors(sortDescriptors) 
    arrayToSort.removeAllObjects() 
    arrayToSort.addObjectsFromArray(sortedArray) 
} 

數組包含以下類

class Appointment: NSObject { 

    var id:Double! 
     var status:NSString! 
     var clinic:Clinic! 
     var medicalCase:MedicalCase! 
     var patient:Patient! 
     var appointmentDate:Double! // Unix timestamp 
     var reasonForVisit:NSString! 
     var cancellationReason:NSString! 
     var visit:Visit! 
    } 

對象當我試圖對它進行分類時,它正在崩潰,出現以下錯誤

[valueForUndefinedKey:]:此類不是密鑰約定編碼密鑰的約定值。

函數調用進行排序

Fn_SortByParameter(allAppointments.aaData, paramName: "appointmentDate", isAscending: true) 

回答

13

你正在運行到的問題是可選的值類型,如Double!不暴露於Objective-C的運行時和不提供鍵 - 值編碼。

你可以使它非可選:var appointmentDate:Double,使用NSNumber對象:var appointmentDate:NSNumber!,或者使用Swift數組和內置的sorted函數。

0

這種莫名其妙的異常往往是不潔的xib或Storyboard文件的結果。在xcode中打開xib或Storyboard,選擇File's Owner,然後單擊「連接檢查器」(右上角的箭頭),一次查看所有插座。尋找!其中表示缺失插座

詳細

1)進入課堂廈門國際銀行文件,或者如果它在故事板

2)上的UITableView點擊右鍵,刪除所有早期綁定

3)添加新的結合提供IBOutlet中,代表和數據源。

4)清理項目並重新運行。

相關問題