Nếu bạn có một NSMutableArray
, làm thế nào để bạn xáo trộn các yếu tố ngẫu nhiên?
(Tôi có câu trả lời của riêng mình cho vấn đề này, được đăng dưới đây, nhưng tôi mới biết về ca cao và tôi muốn biết liệu có cách nào tốt hơn không.)
Cập nhật: Theo ghi nhận của @Mukesh, kể từ iOS 10+ và macOS 10.12+, có một -[NSMutableArray shuffledArray]
phương pháp có thể được sử dụng để xáo trộn. Xem https://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?lingu=objc để biết chi tiết. (Nhưng lưu ý rằng điều này tạo ra một mảng mới, thay vì xáo trộn các phần tử tại chỗ.)
for (NSUInteger i = self.count; i > 1; i--) [self exchangeObjectAtIndex:i - 1 withObjectAtIndex:arc4random_uniform((u_int32_t)i)];
API
là nó trả về một Array
địa chỉ mới đến vị trí mới trong bộ nhớ.