NSMutableArray排序问题

时间:2011-07-28 12:25:08

标签: iphone objective-c xcode ipad

NSMutableArray *标签; 它已正确填充。

    NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: NO];
labels = [labels sortedArrayUsingDescriptors: [NSArray arrayWithObject: sortOrder]];    

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSArrayI addObject:]:无法识别的选择器发送到实例。

即使我在最后一行将NSArray更改为NSMutuableArray,我仍然会收到错误。

由于

2 个答案:

答案 0 :(得分:3)

不要为它分配相同的数组。如果它是不可变的nsarray。

所以这样做

把你的

   labels as NSMutableArray


NSMutableArray *resultArray;

NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: NO];


resultArray = [[labels sortedArrayUsingDescriptors: [NSArray arrayWithObject:sortOrder]] mutableCopy];    

self.labels=resultArray;//updated code

NSLog(@"resultArray : %@ \n\n",resultArray);

答案 1 :(得分:1)

NSArray * descriptors = [NSArray arrayWithObjects: sortOrder, nil];
labels = [labels sortedArrayUsingDescriptors:descriptors];

这应该适合你。