如何检查NSMutableArray中是否已存在一个值?

时间:2014-03-08 14:37:55

标签: ios objective-c

我正在生成随机数并将其添加到数组中。但我不希望重复。如何检查数组中是否已存在该值?谢谢!

int lowerBound = 0;
int long upperBound = numberOfQuestions;
int randomQuestionNumber = lowerBound + arc4random() % (upperBound - lowerBound);
[_randomQuestionNumberArray addObject:[NSDecimalNumber numberWithInt:randomQuestionNumber]];

4 个答案:

答案 0 :(得分:4)

听起来像NSMutableOrderedSet的完美用例如果订购不重要,那么NSMutableSet是您最好的选择


您还应该使用arc4random_uniform代替arc4random %来减少模偏差

答案 1 :(得分:2)

最常见的方法是简单地用所有可能的值填充数组,然后将数组洗牌。见What's the Best Way to Shuffle an NSMutableArray?

答案 2 :(得分:1)

您可以使用

BOOl isFound = [_randomQuestionNumberArray containsObject:object];

答案 3 :(得分:0)

int lowerBound = 0;
int long upperBound = numberOfQuestions;
int randomQuestionNumber = lowerBound + arc4random() % (upperBound - lowerBound);
NSDecimalNumber *currentNumber = [NSDecimalNumber numberWithInt:randomQuestionNumber];
if (![_randomQuestionNumberArray containsObject:num]) {
    [_randomQuestionNumberArray addObject:num];
}