方法一:
//每次点击之前,清空随机数数组,
if(self.randomArr &&self.randomArr.count){
[self.randomArrremoveAllObjects];
}
//获取到num个不同的随机数就返回随机数数组
-(NSMutableArray *)getDifferentRandomWithNum:(NSInteger )num{
if(self.randomArr &&self.randomArr.count>0){
[self.randomArrremoveAllObjects];
}
NSInteger random;
for (;;) {
random=arc4random_uniform(11);//随机数0-10
NSLog(@"random--%tu",random);
if(self.randomArr.count==0){
[self.randomArraddObject:[NSNumbernumberWithInteger:random]];
continue;//进行下一次循环
}
BOOL isHave=[self.randomArrcontainsObject:[NSNumbernumberWithInteger:random]];//判断数组中有没有
if(isHave){
continue;
}
[self.randomArraddObject:[NSNumbernumberWithInteger:random]];
if(self.randomArr.count==num){
returnself.randomArr;
}
}//self.randomArr是存储随机数的数组,如果是在按钮点击是获取随机数,在按钮点击的开始就要把数组清空,防止连续数组内容叠加
}
方法二:
//获取不同的随机数;还有一种思路;吧要生成的随机数范围放到数组中,然后生成随机数作为数组的index,然后每生成一个随机index后,吧对应的数组中的数删除;
NSIndexSet *secIndexset = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(self.selectrow+1,strongS.secresourceArray.count )];//设置一个范围
[strongS.resourceArray insertObjects:strongS.secresourceArray atIndexes:secIndexset];//在总数据中插入新数组