我有一个名为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 排序出来的那些对象具有较高的重叠值首先出现。由于重叠是根据当前路径和此路径动态计算的,我不知道如何使用任何排序数组方法。