Якщо у вас є 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
яке адресує нове місце в пам'яті.