使用特殊模式对NSMutableArray进行排序?

时间:2011-01-19 15:30:30

标签: objective-c programming-languages ios4

我想对这样的数组进行排序。

假设我有4个用户,他们就像这样登录他们的设备

用户1设备(用户ID 1,2,3,4)

用户2设备(用户ID为1,2,3,4)

用户3设备(用户ID为1,2,3,4)

用户4设备(用户ID为1,2,3,4)

现在我希望它们在每个设备中像顺时针一样进行排序。

用户1设备(用户ID 1,2,3,4)

用户2设备(用户ID为2,3,4,1)

用户3设备(用户ID为3,4,1,2)

用户4设备(用户ID为4,1,2,3)

有人知道任何算法来实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

您可以删除阵列的第一项,然后将其添加到最后并继续,直到用户看到他们的用户名/ ID。这可能有效,因为当您删除第一个项目时,它们都会向下移动到第一个位置。

while([[array objectAtIndex:0] id] != [user id])
{
    id temp = [[array objectAtIndex:0] retain];
    [array removeObjectAtIndex:0]; //may cause a deallocation of "temp" if it weren't retained
    [array addObject:temp];
    [temp release];
}

答案 1 :(得分:0)

您可以根据自己喜欢的任何标准对NSArray进行排序。例如,请参阅-sortUsingComparator:-sortUsingFunction: