排序字典数组字典键值

时间:2016-12-30 06:26:50

标签: ios objective-c nssortdescriptor

如何使用 Firt_name 键对数组进行排序。

我使用了此代码,但没有用。

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"user.first_name"ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];

NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
NSArray *sortedArray = [array sortedArrayUsingDescriptors:sortDescriptors];

{
                "created_at" = "";
                "updated_at" = "";
                user =             {
                    "first_name" = Gary;
                    "full_contact" = "null 5555555555";
                    "full_name" = "Gary123";
                };
     },

2 个答案:

答案 0 :(得分:1)

通过使用NSSortDescriptor,你可以做到这一点。

  

NSSortDescriptor对象描述了按对象排序的基础   指定用于比较对象的属性,方法为   用于比较属性,以及是否应该进行比较   上升或下降。 NSSortDescriptor的实例是不可变的。

 +(NSMutableArray *)SortArray : (NSMutableArray *)arrOriginal{
        NSSortDescriptor *sortDescriptor;
        sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"Firt_name" ascending:YES
            comparator:^(id obj1, id obj2) {
            return [obj1 compare:obj2 options:NSNumericSearch];
            }];
        NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
        NSArray *sortedArray;
        sortedArray = [arrOriginal
                       sortedArrayUsingDescriptors:sortDescriptors];
        [arrOriginal removeAllObjects];
        [arrOriginal addObjectsFromArray:sortedArray];
        return arrOriginal;
    }

希望它会有所帮助。

答案 1 :(得分:0)

您可以尝试下面的代码行并检查:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"user.first_name" ascending:YES];

NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];

NSArray *sortedArray=[array sortedArrayUsingDescriptors:sortDescriptors,nil]];

您可以在以下链接中详细了解NSSortDescriptor

https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/SortDescriptors/Articles/Creating.html#//apple_ref/doc/uid/20001845-BAJEAIEE