1

在发送产品 ID 列表后,我正在尝试对从 Apple 服务器收到的 SKProduct 数组进行排序。

我只想使用以下内容进行排序:

NSSortDescriptor *lowestPriceToHighest = [NSSortDescriptor sortDescriptorWithKey:@"self.price" ascending:YES];
NSArray *sortedProducts = [products sortedArrayUsingDescriptors:[NSArray arrayWithObject:lowestPriceToHighest]];

但我收到错误消息:Unable to access variable "lowestPriceToHighest" 我的排序描述符是否定义错误?

4

5 回答 5

7

尝试删除“自我”

NSSortDescriptor *lowestPriceToHighest = [NSSortDescriptor sortDescriptorWithKey:@"price" ascending:YES];
    NSArray *sortedProducts = [products sortedArrayUsingDescriptors:[NSArray arrayWithObject:lowestPriceToHighest]];
于 2013-03-27T20:25:10.463 回答
6

斯威夫特 4:

products.sort(by: { (p0, p1) -> Bool in
    return p0.price.floatValue < p1.price.floatValue
}) 
于 2017-10-25T05:25:27.407 回答
4

Assuming you have var products: [SKProduct] you can do:

products.sortInPlace {
    return Float($0.price) < Float($1.price)
}
于 2016-04-23T05:09:18.057 回答
0

尝试:

NSArray *products = [response.products sortedArrayUsingComparator:^(id a, id b) {
        NSDecimalNumber *first = [(SKProduct*)a price];
        NSDecimalNumber *second = [(SKProduct*)b price];
        return [first compare:second];
    }];

从这个答案:

如何在应用程序购买中按价格对产品进行排序?

于 2013-03-27T19:54:03.047 回答
0
NSSortDescriptor  *sort = [[NSSortDescriptor alloc] initWithKey:@"_strPrice"
                                                 ascending:sortFlag selector:@selector(localizedStandardCompare:)] ;

试试这个选择器

于 2015-01-05T06:55:49.983 回答