Spa*_*Dog 3 sorting iphone nsarray ios
我有一系列字典.每个字典都是这样的
object, @"myObject",
[NSValue valueWithCGRect:myRect], @"rect",
nil
Run Code Online (Sandbox Code Playgroud)
如何通过myRect.origin.x对该数组进行排序?
我知道objective-c有智能的方法来排序字典数组.我的问题在于我想按myRect的x坐标排序,myRect包含在NSValue中......用魔法命令做任何事情吗?我知道你们是魔术师!:d
谢谢.
最彻底的方法可能是使用的方法等sortUsingComparator:
或sortedArrayUsingComparator
(取决于阵列的可变性),并定义自定义比较器(块接受两个参数并返回NSComparisonResult
),解包您rects并比较它们的x坐标.
编辑:嗯,因为其他人都提供代码,这是我的:
[array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
CGRect rect1 = [[obj1 valueForKey:@"rect"] CGRectValue];
CGRect rect2 = [[obj2 valueForKey:@"rect"] CGRectValue];
if(rect1.origin.x < rect2.origin.x) {
return NSOrderedAscending;
} else if(rect1.origin.x > rect2.origin.x) {
return NSOrderedDescending;
} else {
return NSOrderedSame;
}
}];
Run Code Online (Sandbox Code Playgroud)