2012-04-01 49 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