【发布时间】:2013-12-05 10:40:33
【问题描述】:
我有一个数组,其中填充了一个名为 Line 的核心数据对象。每条线与 VerticePoint 实体具有一对一的关系。 VerticePoint 实体包含一个 x 和 y 坐标。
我正在尝试按 x 和 y 坐标对该数组进行排序。
如果我只按 x 顶点排序,就像这样,它可以工作:
- (NSArray *)sortVerticesBottomLeftOrigin : (NSArray *)verticesPassed {
NSArray *sortDescriptorsX = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"origin.x" ascending:YES]];
NSArray *returnedVertices = [verticesPassed sortedArrayUsingDescriptors:sortDescriptorsX];
return returnedVertices;
}
但是,如果我添加第二个排序描述符以按 y 排序,则排序失败并出现日志错误:-[__NSArrayI ascending]: unrecognized selector sent to instance 0xca7e0e0
代码:
- (NSArray *)sortVerticesBottomLeftOrigin : (NSArray *)verticesPassed {
NSArray *sortDescriptorsX = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"origin.x" ascending:YES]];
NSArray *sortDescriptorsY = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"origin.y" ascending:YES]];
NSArray * finishedSort = [NSArray arrayWithObjects:sortDescriptorsX, sortDescriptorsY, nil];
NSArray *returnedVertices = [verticesPassed sortedArrayUsingDescriptors:finishedSort];
return returnedVertices;
}
有什么想法吗?
【问题讨论】:
标签: ios objective-c arrays sorting nssortdescriptor