通过随机发生器选择bool

时间:2015-02-17 08:06:09

标签: objective-c random boolean

我总共有6个布尔值,唯一分开它们的是一个数字。他们被命名为checker0但是5。

所以checker0,checker1,checker2,checker3,checker4和checker5。

所有这些授予或拒绝访问应用程序的某些部分,无论bool是真还是假。

然后我使用随机发生器:

randomQuestionNumber = arc4random_uniform(5);

所以说我们得到3号,checker3 = true;

但我现在的问题是,可以将这个设置为真,而不必通过if语句。

我的想法是使用%d来实现打印int以表示NSLog的方式。

NSLog(@"The number is: %d", randomQuestionNumber);

类似于:

checker%d, randomQuestionNumber = true.

这样的事情会成为可能吗?所以我不必这样做:

if (randomQuestionNumber == 0) {
    checker0 = true;
}

else if (randomQuestionNumber == 1)
{
    checker1 = true;
}

非常感谢你! :)

1 个答案:

答案 0 :(得分:0)

每次当你发现自己处于一个名为三个或更多变量checkerN的情况时,你很可能知道你错过了一个你应该声明一个数组的代码中的位置。当您需要根据整数索引选择N之一时,这一点尤为明显。

最好的解决方案是将声明更改为checker[6],并使用索引而不是更改名称。如果由于某种原因这是不可能的,你仍然可以创建一个指针数组,并使用它来修改你的值,如下所示:

BOOL *ptrChecker[] = {&checker0, &checker1, &checker2, ...};
...
*ptrChecker[randomQuestionNumber] = true;
相关问题