从数组中随机获取对象

时间:2013-05-23 07:37:51

标签: iphone ios objective-c arc4random

我有30个图像的数组。我的要求是每30个图像中每次只能获取20张图像,随机。每次都会获取新的20张图片。

有人能告诉我怎样才能实现这个目标?

我试过了:

randIdx=arc4random()%[FrontsCards count];

但我得到全部30.如何从30个图像阵列中获取20张图像?

3 个答案:

答案 0 :(得分:5)

琐碎的方法:mutableCopy图像数组,从0到20循环,选择一个图像(idx = arc4random_uniform(copiedArray.count);),然后从重叠数组中删除所选图像。

(不,不要使用arc4random() % array.count,模数会使随机性消失,这就是arc4random_uniform()函数的原因。)

答案 1 :(得分:1)

  1. 每次提取之前将数组洗牌
  2. 从阵列中获取前20个图像。
  3. 看看不同的改组算法。

答案 2 :(得分:0)

只使用30个图像中的前20个图像并首先检查阵列中是否已呈现任何图像,不会再在阵列中添加。为此你尝试一个只能运行20次的循环。