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

Ios 如何检查NSMutableArray中是否已存在值?,ios,objective-c,Ios,Objective C,我正在生成随机数并将其添加到数组中。但我不想有重复的。如何检查数组中是否已经存在该值?谢谢大家! int lowerBound = 0; int long upperBound = numberOfQuestions; int randomQuestionNumber = lowerBound + arc4random() % (upperBound - lowerBound); [_randomQuestionNumberArray addObject:[NSDecimalNumber num

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

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

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


您还应该使用
arc4random\u uniform
而不是
arc4random%
来减少模偏差

您可以使用

BOOl isFound = [_randomQuestionNumberArray containsObject:object];

最常见的方法是用所有可能的值填充数组,然后洗牌数组。看

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];
}