1

製品 ID のリストを送信した後、Apple Server から受け取った SKProduct の配列を並べ替えようとしています。

以下を使用してソートしたい:

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

しかし、エラーメッセージが表示されました: Unable to access variable "lowestPriceToHighest" Is my sort descriptor defined wrongly?

4

5 に答える 5

7

「自分」を取り除いてみてください

NSSortDescriptor *lowestPriceToHighest = [NSSortDescriptor sortDescriptorWithKey:@"price" ascending:YES];
    NSArray *sortedProducts = [products sortedArrayUsingDescriptors:[NSArray arrayWithObject:lowestPriceToHighest]];
于 2013-03-27T20:25:10.463 に答える
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 に答える