Wenn Sie eine haben NSMutableArray
, wie mischen Sie die Elemente zufällig?
(Ich habe meine eigene Antwort darauf, die unten veröffentlicht ist, aber ich bin neu bei Cocoa und ich bin interessiert zu wissen, ob es einen besseren Weg gibt.)
Update: Wie von @Mukesh festgestellt, gibt es ab iOS 10+ und macOS 10.12+ eine -[NSMutableArray shuffledArray]
Methode, die zum Mischen verwendet werden kann. Weitere Informationen finden Sie unter https://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objc . (Beachten Sie jedoch, dass dadurch ein neues Array erstellt wird, anstatt die vorhandenen Elemente zu mischen.)
for (NSUInteger i = self.count; i > 1; i--) [self exchangeObjectAtIndex:i - 1 withObjectAtIndex:arc4random_uniform((u_int32_t)i)];
API
ist, dass es eine neue Array
Adresse zurückgibt, die an einen neuen Speicherort im Speicher adressiert.