NSString 또는 NSNumber 속성으로 개체를 비교하는 iOS 앱에서 여러 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