生成1到10之间的随机数,不重复

Vin*_*rma 1 iphone random objective-c

我想生成1到10之间的随机数.当用户点击"下一步"按钮时,必须打印一个随机问题,并且不能重复问题.问题是,有时问题是重复.任何人都可以帮助我或提供一些参考或教程吗?

- (IBAction)nextQuestion:(id)sender
{
    NSInteger randomNum = arc4random() %10 ;
    int countCounter= counter++;
    [self.btnNext setTitle:@"Next" forState:UIControlStateNormal];

    if(countCounter==4)
    {
        self.btnNext.hidden=YES;
        self.btnQuizDone.hidden=NO;
    }

    switch ( arc4random()%10) 
    {
      case 0:
      {
          NSLog(@"zero");

          [lblQuestion setText:@"Q10:question number ten"];

      }
      break;
     case 1:
      {
          NSLog(@"one");
          [lblQuestion setText:@"Q2:question number two"];

      }
      break;
      case 2:
      {
          NSLog(@"two");
          [lblQuestion setText:@"Q6:question number six"];

      }
      break;
      case 3:
      {
          NSLog(@"three");
          [lblQuestion setText:@"Q5:question  number five"];

      }
       break;
      case 4:
      {
          NSLog(@"four");
          [lblQuestion setText:@"Q3:question number three"];

      }
      break;
      case 5:
      {
          NSLog(@"five");
          [lblQuestion setText:@"Q9:question  number nine"];

      }
      break;
      case 6:
      {
          NSLog(@"six");
          [lblQuestion setText:@"Q7:question  number seven"];

      }
      break;
      case 7:
      {
          NSLog(@"seven");
          [lblQuestion setText:@"Q4:question  number four"];


      }
      break;
      case 8:
      {
          NSLog(@"eight");
          [lblQuestion setText:@"Q1:question  number one"];

      }
      break;
      case 9:
      {
          NSLog(@"nine");
          [lblQuestion setText:@"Q8:question  number eight"];

      }
      break;

      default:
          break;
    }
}
Run Code Online (Sandbox Code Playgroud)

msk*_*msk 6

这个怎么样.

- (IBAction) getNextRandomQues:(id) sender
{
   int randomQuesIndex = (arc4random() % mutableArrayOfQuestions.count) + 1;
   [mutableArrayOfQuestions removeObjectAtIndex: randomQuesIndex];
}
Run Code Online (Sandbox Code Playgroud)

mutableArrayOfQuestions可以是"问题"数组(问题可以是模态问题的类)或简单的问题索引数组.想法是随机选择mutableArrayOfQuestions中的问题并将其删除,以便下次不再选择它.