यदि आपके पास एक है 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
जो मेमोरी में नए स्थान को संबोधित करता है।