如何使用NSSortDescriptor对NSMutableArray进行排序?

时间:2013-02-22 15:21:09

标签: iphone ios objective-c nsmutablearray nssortdescriptor

我正在从JSON webservice解析数据,然后使用以下代码按价格,日期,折扣等对数据进行排序。

这是我用来对数据进行排序的代码:

-(void)priceSort:(id)sender {

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
                                     initWithKey: @"price" ascending: YES];

NSMutableArray *sortedArray = (NSMutableArray *)[self.displayItems
                                          sortedArrayUsingDescriptors: [NSArray arrayWithObject:sortDescriptor]];

[self setDisplayItems:sortedArray];

[self.tableView reloadData];


}

当我尝试按价格排序时,这种方法很好,但是当我想按照评论数排序时,我似乎无法正确地获得代码:

我使用的价格:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
                                         initWithKey: @"price" ascending: YES];

但是对于评论,我希望获得“n”值。看看它是如何嵌套在输出中的(显示项目下面的mutableArray:

"old_price" = 24;
        price = "9.9";
        reviews =         {
            **n = 11;**
            val = 70;
        };
        "sold_count" = 101;

感谢您对此提供的任何帮助:)

1 个答案:

答案 0 :(得分:4)

要按评论数n排序,您的排序描述符将为:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
                                     initWithKey: @"reviews.n" ascending: YES];