【发布时间】:2010-02-24 17:00:03
【问题描述】:
我有一些对象有 3 个排序选项:质量、数量和与另一个对象的比较,按该顺序排序。
- (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
解决方案?谢谢。
【问题讨论】:
标签: iphone sorting arrays compare