iOSアプリケーションでNSStringまたはNSNumberプロパティでオブジェクトを比較する複数のNSComparatorを使用します。 NSStringにはcaseInsensitiveCompare:
があり、NSNumberにはcompare:
があるので、これはかなり簡単です。どうすればboolかintsを比較できますか?ブール値の場合、私の比較関数が(bool)ascending
パラメータを取るので、コードはかなり素早く複雑になる可能性があります。私はObjective Cがこのタイプのものにはあまりにも不明瞭なグローバル関数を持っていることに気付きました。ブール値と整数の比較
現在、私は、ブール値を比較するには、このコードを使用しています:
NSComparator comp = ^(id id1, id id2) {
ListItem *comp1 = nil,
*comp2 = nil;
if([id1 isKindOfClass:[ListItem class]]){
if(ascending){
comp1 = (ListItem*)id1;
comp2 = (ListItem*)id2;
}else{
comp1 = (ListItem*)id2;
comp2 = (ListItem*)id1;
}
}
if(h1!=nil && h2!=nil){
if((h1.isInBasket && h2.isInBasket) || (!h1.isInBasket && !h2.isInBasket)){
return 0;
} else if(h1.isInBasket && !h2.isInBasket) {
return 1;
} else {
return -1;
}
} else {
return 0;
}
}
=、!=、<, >? =) – jrturton