Se hai un NSMutableArray
, come mescoli gli elementi in modo casuale?
(Ho una mia risposta per questo, che è pubblicata di seguito, ma sono nuovo di Cocoa e sono interessato a sapere se esiste un modo migliore.)
Aggiornamento: come notato da @Mukesh, a partire da iOS 10+ e macOS 10.12+, esiste un -[NSMutableArray shuffledArray]
metodo che può essere utilizzato per la riproduzione casuale. Vedi https://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objc per i dettagli. (Ma nota che questo crea un nuovo array, piuttosto che mescolare gli elementi sul posto.)
for (NSUInteger i = self.count; i > 1; i--) [self exchangeObjectAtIndex:i - 1 withObjectAtIndex:arc4random_uniform((u_int32_t)i)];
API
è che restituisce un nuovo Array
che si rivolge a una nuova posizione nella memoria.