2011-04-14 8 views
10

संभव डुप्लिकेट:
What’s the Best Way to Shuffle an NSMutableArray?में ऑब्जेक्टिव-सी एक सरणी शफ़ल

मैं iphone/iPad.I के लिए अनुप्रयोग विकसित वहाँ किसी भी एक NSArray.Is में संग्रहित वस्तुओं शफ़ल करना चाहते हैं उद्देश्य-सी के साथ इसे हासिल करने का तरीका?

उत्तर

12

code provided by Kristopher Johnson साथ NSMutableArray के लिए कोई श्रेणी जोड़ना, -

// NSMutableArray_Shuffling.h 

#if TARGET_OS_IPHONE 
#import <UIKit/UIKit.h> 
#else 
#include <Cocoa/Cocoa.h> 
#endif 

// This category enhances NSMutableArray by providing 
// methods to randomly shuffle the elements. 
@interface NSMutableArray (Shuffling) 
- (void)shuffle; 
@end 


// NSMutableArray_Shuffling.m 

#import "NSMutableArray_Shuffling.h" 

@implementation NSMutableArray (Shuffling) 

- (void)shuffle 
{ 

    static BOOL seeded = NO; 
    if(!seeded) 
    { 
    seeded = YES; 
    srandom(time(NULL)); 
    } 

    NSUInteger count = [self count]; 
    for (NSUInteger i = 0; i < count; ++i) { 
     // Select a random element between i and end of array to swap with. 
     int nElements = count - i; 
     int n = (random() % nElements) + i; 
     [self exchangeObjectAtIndex:i withObjectAtIndex:n]; 
    } 
} 

@end 
+0

उत्तर के लिए धन्यवाद। – Hariprasad

+0

यह सरणी तत्वों को दोहरा रहा है –

+13

किसी और के जवाब की प्रतिलिपि बनाना अच्छा अभ्यास नहीं है: pasawaya