YYCategories icon indicating copy to clipboard operation
YYCategories copied to clipboard

你好,我想询问下NSArray分类中的shuffle方法

Open developforapple opened this issue 8 years ago • 1 comments

shuffle 方法可不可以拿来从数组中取一定数量的随机内容? 先洗牌,再取前N个。这样取得的内容符不符合随机的要求?

NSArray *originArray = ......;
NSMutableArray *tmp = [NSMutableArray arrayWithArray:originArray];
[tmp shuffle];
NSUInteger count = 10;
NSArray *randomArray;
if (tmp.count >= count) {
    randomArray = [tmp subarrayWithRange:NSMakeRange(0, count)];
}else{
    randomArray = tmp;
}

developforapple avatar Sep 22 '16 05:09 developforapple

如须保证随机元素的单一性,可以这样做。如果不需要,可以用randomObject来加到数组。

ColinHwang avatar Oct 15 '16 08:10 ColinHwang