我见过像
这样的例子[someArray sortUsingSelector:@selector(compare:)];
我正在寻找一个存储UIViews集合的示例,我想根据我在创建新UIView时以编程方式假设的标记按升序或降序对它们进行排序。
如果有人可以提供代码示例或说明非常棒
答案 0 :(得分:13)
NSArray提供了许多方法来对数组进行排序(所有这些方法都列在NSArray文档中的“排序”标题下)。您可以定义函数,方法或排序描述符,以根据标记进行排序来比较视图。例如,这是使用NSSortDescriptor的实现:
NSSortDescriptor *ascendingSort = [[NSSortDescriptor alloc] initWithKey:@"tag" ascending:YES];
NSSortDescriptor *descendingSort = [[NSSortDescriptor alloc] initWithKey:@"tag" ascending:NO];
NSArray *sortedArray = [someArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:ascendingSort]];
答案 1 :(得分:2)
- (NSComparisonResult)compareTags:(UIView *)view {
if ([self tag] == [view tag]) return NSOrderedSame;
if ([self tag] > [view tag]) return NSOrderedDescending;
return NSOrderedAscending;
}
假设我得到了正确的排序,那就是,这种使用的方法必须在UIView上(很容易用类别完成)。还有其他几种获得相同结果的方法,请参阅文档Sorting Arrays。