objective-c - 对字典数组进行排序。

标签 objective-c nsarray

我正在尝试对“名称”字段上的字典数组进行排序。出了问题,我无法弄清楚。这是我的代码。

myArray = [{'Name' : 'Alina'}{'Name' : 'rita'}{'Name' : 'Viva'}{'Name' : 'baby'}]

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"Name"  ascending:YES];
sorted_array = [myArray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];

sorted_array =  [{'Name' : 'Alina'}{'Name' : 'Viva'}{'Name' : 'baby'}{'Name' : 'rita'}

请指导我哪里出错了。谢谢。

最佳答案

您需要使用不区分大小写的比较器:

NSArray *myArray = @[@{@"Name" : @"Alina"}, @{@"Name" : @"rita"}, @{@"Name" : @"Viva"}, @{@"Name" : @"baby"}];
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"Name"
                              ascending:YES
                               selector:@selector(localizedCaseInsensitiveCompare:)];
NSArray *sorted_array = [myArray sortedArrayUsingDescriptors:@[descriptor]];
NSLog(@"sorted_array: %@", sorted_array);

NSLog 输出:

sorted_array: (
        {
        Name = Alina;
    },
        {
        Name = baby;
    },
        {
        Name = rita;
    },
        {
        Name = Viva;
    }
)

关于objective-c - 对字典数组进行排序。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24219814/

相关文章:

ios - 尝试使用 JSONModel : Invalid type in JSON write (. 序列化后出错 ..)

objective-c - 如何使用嵌套 NSArray 对 NSArray 进行排序

ios - 如何在for循环中调用web服务?

ios - 在两个 View 之间水平滑动

ios - 为什么有些 Outlet 被强引用,即使文档指定 outlet 应该是弱引用

ios - ARC 不允许将 'int' 隐式转换为 'NSArray*'

ios - 从空白行开始 UIPickerView

IOS 7 - 在 TableView 白色 ScrollView 背景中搜索显示 Controller - 无法更改背景颜色

objective-c - 将 NSNumber 与固定值进行比较?

ios - 从 NSDictionary Issue 调用特定的数据键值