问题:与标题中所说的差不多。我浏览了互联网,但找不到任何易于理解的内容。我有包含许多 NSValue
的 NSArray
。这些 NSValue
每个都有一个 CGPoint
。我想按 x
排序,然后按 y
排序。
一些代码:
NSValue * valuePointObject = [NSValue valueWithCGPoint:CGPointMake(x, y)];
NSArray *array = [[NSArray alloc] initWithObjects: valuePointObject, valuePointObject2, ..., nil];
最佳答案
要对值进行排序,您必须再次将它们“拆箱”到 CGPoints。代码可能是这样的:
NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(NSValue *obj1, NSValue *obj2) {
CGPoint p1 = [obj1 CGPointValue];
CGPoint p2 = [obj2 CGPointValue];
if (p1.x == p2.x) return p1.y < p2.y;
return p1.x < p2.x;
}];
关于iOS:对包装 CGPoint 的 NSValue 的 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10231261/