我想在下面排序一个对象数组是我的函数来排序对象数组
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)
}
Run Code Online (Sandbox Code Playgroud)
和
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)
}
Run Code Online (Sandbox Code Playgroud)
数组包含以下类的对象
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!
}
Run Code Online (Sandbox Code Playgroud)
当我试图排序它崩溃与下面的错误
[valueForUndefinedKey:]:此类不是键约会日期的键值编码兼容.
函数调用排序
Fn_SortByParameter(allAppointments.aaData, paramName: "appointmentDate", isAscending: true)
Run Code Online (Sandbox Code Playgroud)
Bri*_*kel 15
您遇到的问题是可选的值类型Double!不会暴露给objective-c运行时,也不能用于键值编码.
您可以将其设置为非可选:var appointmentDate:Double使用NSNumber对象:var appointmentDate:NSNumber!,或使用Swift数组和内置sorted函数.
| 归档时间: |
|
| 查看次数: |
2486 次 |
| 最近记录: |