Если у вас есть NSMutableArray
, как вы перемешиваете элементы случайным образом?
(У меня есть собственный ответ на этот вопрос, который опубликован ниже, но я новичок в Какао, и мне интересно знать, есть ли лучший способ.)
Обновление: как отмечает @Mukesh, начиная с iOS 10+ и macOS 10.12+, существует -[NSMutableArray shuffledArray]
метод, который можно использовать для перемешивания. Подробнее см. Https://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objc . (Но учтите, что это создает новый массив, а не перетасовывает элементы на месте.)
for (NSUInteger i = self.count; i > 1; i--) [self exchangeObjectAtIndex:i - 1 withObjectAtIndex:arc4random_uniform((u_int32_t)i)];
API
том, что он возвращает новое, Array
которое обращается к новому месту в памяти.