5

また別の問題に行き詰まりましたが、久しぶりです。

numbers今回は、213879、123、4、345、56567 などの整数を含む属性を持つデータベース (Core Data) があります。

同様の順序と同様に、昇順でデータをフェッチする必要がありalphabeticallyます。

私は以下の方法でこれを行っています、

fetchRequest.sortDescriptors=[NSArray arrayWithObject:
      [NSSortDescriptor sortDescriptorWithKey:@"numbers" 
                                    ascending:YES 
                                     selector:@selector(compare:)]];

残念ながら、すべての数字の 1 桁目のみを比較します。つまり、 と のような数字が 2 つある場合は123、それら321を比較1 (first digit of first number)3 (first digit of second number)て並べ替えます。

andが来る123と混乱し111ます (すべての数字の最初の桁が同じ)。

私が何か間違ったことをしている場合、またはSortDescriptorがこのように機能する場合は? 123,133,213,451,516同様に数値を昇順にソートするソリューションが必要です。

覚えておくべきこと 実際には、属性numbersには 6 桁以上の整数が含まれます。1234567,234568,235481

期待して私を助けてくれたすべての人に感謝します。

4

3 に答える 3

3
[NSSortDescriptor sortDescriptorWithKey:@"self"
                              ascending:YES
                             comparator:^(id obj1, id obj2){
    return [(NSString*)obj1 compare:(NSString*)obj2
                            options:NSNumericSearch];
 }];

これは私にとって完璧に機能しています

于 2013-01-08T04:40:31.667 に答える