嘿,对于我从-plist文件中提取的问题进行随机化的任何想法?
-(NSUInteger)nextQuestionID:(NSUInteger)question_number{
return (question_number>=[self.questions count]-1) ? 0 : (question_number+1);
return 0;
}
-(NSDictionary*) getQuestion:(NSUInteger)question_number{
if (question_number>=[self.questions count]) question_number = 0;
return [self.questions objectAtIndex:question_number];
return NULL;
}
答案 0 :(得分:1)
要获得随机整数,我建议使用arc4random
函数,这里有一些代码可以执行此操作:
int randomInt = arc4random() % questionNumber;
return [self.questions objectAtIndex: randomInt];
答案 1 :(得分:1)
您可以使用arc4random_uniform(upper_bound)
功能。该参数是随机数的上限。
一个例子:
int index = arc4random_uniform([self.question count]);
答案 2 :(得分:0)
question_number = arc4random() % self.questions.count;
答案 3 :(得分:0)
将问题编号设为随机数
替换功能
-(NSDictionary*) getQuestion:(NSUInteger)question_number{
if (question_number>=[self.questions count]) question_number = 0;
question_number = arc4random()%[self.questions count];// changes made here
return [self.questions objectAtIndex:question_number];
return NULL;
}
答案 4 :(得分:0)
随机整数:
srand(time(nil));
for (int i = 0; i < 100; i++) {
NSLog(@"random number between 72 and 96 : %d", rand() % (96 - 72) + 72);
}
<强>更新强>
并针对您的具体情况:
- (NSUInteger)nextQuestionID {
srand(time(nil));
return rand() % [self.questions count];
}
- (NSDictionary*)getQuestion {
return [self.questions objectAtIndex:[self nextQuestionID]];
}
<强>更新#2 强>
测试以下循环两次,三次或更多次并比较输出:
srand(time(nil));
for (int i = 0; i < 10; i++) {
NSLog(@"random number : %d", rand() % 89 + 10);
}
你应该得到10到99之间的10个随机数,我在真实设备上测试过它,而不是在模拟器上测试它,但它也可以在模拟器上运行。
如果您总是得到相同的结果,请告诉我。