Jika Anda memiliki NSMutableArray
, bagaimana Anda mengocok elemen secara acak?
(Saya punya jawaban sendiri untuk ini, yang diposting di bawah ini, tetapi saya baru mengenal Cocoa dan saya tertarik untuk mengetahui apakah ada cara yang lebih baik.)
Pembaruan: Seperti dicatat oleh @Mukesh, pada iOS 10+ dan macOS 10.12+, ada -[NSMutableArray shuffledArray]
metode yang dapat digunakan untuk mengacak. Lihat https://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objc untuk detailnya. (Tetapi perhatikan bahwa ini menciptakan array baru, daripada mengocok elemen di tempat.)
for (NSUInteger i = self.count; i > 1; i--) [self exchangeObjectAtIndex:i - 1 withObjectAtIndex:arc4random_uniform((u_int32_t)i)];
API
adalah ia mengembalikan Array
yang alamat baru ke lokasi baru di memori.