2012-04-01 61 views
0

可能重複:
What's the Best Way to Shuffle an NSMutableArray?shuffle的內容設置在NSMutableArray的

我有一個NSMutableArray一些值。現在我需要洗牌這些值。有人能告訴我如何洗牌這些價值。

對不起,我沒有任何代碼來演示。

我經歷了這個SO後,建議使用exchangeObjectAtIndex:withObjectAtIndex:,但有人可以告訴我它是如何完成的。一個例子或教程解釋這將有所幫助。

+1

你爲什麼不看這個問題的其他答案? [其中之一](http://stackoverflow.com/a/56656/689356)提供了一個完整的解決方案。 – yuji 2012-04-01 15:50:46

回答

1

你可以這樣說:

for (int i = [array count] - 1; i > 0; i--) { 
    int j = arc4random() % (i+1); 
    [array exchangeObjectAtIndex:i withObjectAtIndex:j]; 
} 

陣列是你NSMutableArray

+0

對於一個好的洗牌,你不想用'數組數'來修改,但是用'我'。參見[Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher-Yates_shuffle#The_modern_algorithm)。 – SSteve 2012-04-01 16:13:29

+0

@SSteve你是對的!謝謝,我更新了答案。 – 2012-04-01 16:23:18