我试图排序自定义对象的数组。当一个数组包含一个对象时,它将使用一个对象返回排序的数组。但是,如果一个数组包含多个对象,坠毁快速排序自定义对象的NSMutableArray
class Plans:NSObject{
var price:Int
var name:String?
..
..
..
}
func price(array:NSMutableArray,sortKey:NSString)->Int{
var sortDescriptor:NSSortDescriptor = NSSortDescriptor(key: sortKey, ascending: true)
var sortedArray:NSArray = array.sortedArrayUsingDescriptors([sortDescriptor])//Crashes
var apt:Plans = sortedArray.objectAtIndex(0) as Plans
return apt.price
}
函数调用:
self.price(array,sortKey:"price") //array contains array of Plans objects
崩溃:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<pjct.Plans 0x7fb8a7bb7af0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key price.'
你的代码实际上适用于我。您正在使用哪个版本的xcode?你是如何初始化'array'变量的? – 2014-10-30 10:29:48
我正在使用Xcode 6.1。我将json响应映射到数组中,并尝试按价格对数组进行排序 – 2014-10-30 10:40:03
该数组很有可能不包含任何“Plans”类型的对象。您应该向我们展示用于将json响应转换为数组的代码。 – 2014-10-30 10:47:52