2011-01-14 11 views
0

私は、UITableViewに表示されているデータを数値的にソートしようとしています。その前にNSFetchedResultsControllerのNSSortDescriptorを使った数値ソート

私は、このようなソート記述子を使用:

sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)]; 

今私は数値的に次のようにこれをソートするためにブロックを使用したい:

sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) { 
    return [((NSString *)obj1) compare:(NSString *)obj2 options:NSCaseInsensitiveSearch | NSNumericSearch]; 
}]; 

をしかし、それはincorectly競合の原因となったデータをソートNSFetchedResultsControllerのセクション名を使用します。だから私はコンパレータブロックで古いソートを真似しようとしました。問題が数値比較によって引き起こされていないことを確認するだけです。 ...

sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) { 
    return [((NSString *)obj1) caseInsensitiveCompare:(NSString *)obj2]; 
}]; 

も同じエラーを引き起こし、彼らは最初の方法がやったのと同じ方法でデータをソートしませんなぜ私が表示されていない任意のアイデア

:問題は、これらの線があることです?

答えて

1

これがフェッチ要求で機能するかどうかはわかりませんが、@selector(localizedStandardCompare:)でソートを試みることができます。

+0

これもセクション名との競合を引き起こしますが、これをmondayでさらにテストします。 私はまだ最後のソート記述子が最初のものとは異なる理由を理解できません... – edziubudzik

関連する問題