【发布时间】:2011-06-27 23:13:14
【问题描述】:
我有一个名为 arrayToFilter 的 myObjects 数组。 myObject 的一个(元素?)是一个贝塞尔路径数组。我将特定索引(thispath)处的 bezierpath 与第二条路径进行比较,并使过滤数组仅由路径重叠一定量(20%)的那些对象组成。我使用 indexedOfObjectsPassingTest 来喜欢这个:
NSIndexSet * index = [[arrayToFilter objectsAtIndexes:index] indexesOfObjectsPassingTest:^BOOL (id obj, NSUInteger idx, BOOL *stop){
MyObject * anobject = obj;
UIBezierPath * thispath = [anobject.allPaths objectAtIndex:i];
NSInteger overlap = [self percentPathBoxOverlap:path: thispath];
return overlap>20;
}];
if ([index count] !=0){
filteredArray = [arrayToFilter objectsAtIndexes:index] ;
}
这很好用。但我想要做的是用filteredArray 排序出来的那些对象具有较高的重叠值首先出现。由于重叠是根据当前路径和此路径动态计算的,我不知道如何使用任何排序数组方法。
【问题讨论】:
标签: ios sorting nsindexset