나는 3 가지 정렬 옵션 인 quality, quatity 및 a가 다른 객체와 비교하여 그 순서로 정렬 된 객체가 있습니다. 방법 객체가 동일한 품질과 수량이있는 경우 순환 비교가 발생할 수 있습니다, 나는 그 경우에 어떤 정렬 순서를 반환 할 :순환 비교를 사용하여 배열 정렬
- (NSComparisonResult) compare: (MyObject *) obj {
if (self.quality > obj.quality)
return NSOrderedAscending;
else if (self.quality < obj.quality)
return NSOrderedDescending;
if (self.quantity > obj.quantity)
return NSOrderedAscending;
else if (self.quantity < obj.quantity)
return NSOrderedDescending;
if ([self betterThan: obj])
return NSOrderedAscending;
if ([obj betterThan: self])
return NSOrderedDescending;
return NSOrderedSame;
}
내 문제는 betterThan는 점이다. 예를 들어
, A, B 및 C는 동일한 품질/수량이 있지만
A betterThan: B => YES
B betterThan: C => YES
C betterThan: A => YES
솔루션? 감사.
네가 맞아, 나는 그 코드를 서둘러 썼다. 나는 그것을 고쳤다 :) 그러나, 다른 모든 비교를 제거하고 betterThan와 달라 붙는다 : 나의 유일한 비교로서, 내가 얻었던 모두는 부서지기 때문에 멈추지 않을 것이기 때문에, 나는 믿는다. 나는 디버거로부터 어떤 결과도 얻지 못하므로, 정말로 말할 수는 없다. –