У меня есть NSArray с 4 объектами, скажем, 1, 2, 3 и 4. Я хочу отсортировать этот массив в порядке возрастания, но со случайным образом выбранным стартовым номером. Например; 2, 3, 4 и 1 или 4, 1, 2 и 3.Сортировка NSArray в порядке убывания
Как это сделать?
То, что я до сих пор:
NSArray *playersArray = [_players allKeys];
NSSortDescriptor *sortPlayerArray = [[NSSortDescriptor alloc] initWithKey:nil ascending:YES];
playersArray = [playersArray sortedArrayUsingDescriptors:@[sortPlayerArray]];
Это приводит к 1, 2, 3, 4, очевидно. Я также возможность произвольно заказывать игроков, так как:
activePlayersArray = [_players allKeys];
NSMutableArray *temp = [[NSMutableArray alloc] initWithArray:activePlayersArray];
int count = (int)[temp count];
for (int i = 0; i < count; ++i) {
int nElements = count - i;
int n = (arc4random() % nElements) + i;
[temp exchangeObjectAtIndex:i withObjectAtIndex:n];
}
activePlayersArray = [NSArray arrayWithArray:temp];
Так как я могу «объединить» эти два, чтобы получить результаты, которые я хочу?
Надеюсь, вы, ребята, можете мне помочь.
Спасибо!
Это опечатка в названии? Это противоречит вопросу. – rmaddy
Сортируйте сначала, затем получите случайный индекс и переместите этот элемент в начало массива. – CrimsonChris