这是我的代码:
NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"contact_name" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName];
arrayOfDictionary = [arrayOfDictionary sortedArrayUsingDescriptors:sortDescriptors];
显然这不起作用,因为arrayOfDictionary
是NSMutableArray
。我已经环顾了很多,我用字典数组看到的所有排序都是用非可变数组完成的。任何人都可以通过NSMutableArray
了解我如何做到这一点。
答案 0 :(得分:0)
arrayOfDictionary = [arrayOfDictionary sortedArrayUsingDescriptors:sortDescriptors] mutableCopy];
虽然不是最好的方法,但却能得到你想要的东西......
答案 1 :(得分:0)
如果要对Mutable数组进行排序,可以使用sortUsingDescriptors
。
答案 2 :(得分:0)
如果您的词典数组包含键contact_name
,那么您的代码几乎可以正常工作。请注意下面的简化需要更少的代码。
请注意,您可以使用sortedArrayUsingDescriptors
从可变或不可变数组创建新数组。您还可以使用sortUsingDescriptors
对可变数组进行排序。
因此:
NSArray *newArray = [arrayOfDictionary sortedArrayUsingDescriptors:
@[[NSSortDescriptor sortDescriptorWithKey:@"contact_name" ascending:YES]]];
// if you need it mutable:
NSMutableArray *mutableArrayOfDictionary = [NSMutableArray arrayWithArray:newArray];
或
[mutableArrayOfDictionary sortUsingDescriptors:
@[[NSSortDescriptor sortDescriptorWithKey:@"contact_name" ascending:YES]]];