我想取4个随机数并将其保存到NSSet
(以确保数组中没有相同的数字)
由于int
值必须是NSNumber
对象,因此无法比较,因此无法在数组中保存唯一整数。
+(NSMutableSet *)uniquenumber
{
int j=0;
NSMutableSet *sets=[[NSMutableSet alloc]init];
while (sets.count<4) {
j=arc4random()%7;
[sets addObject:[NSNumber numberWithInteger:j]];
}
return sets;
}
我想从0-7
随机获取4个唯一号码。这就是问题所在。
感谢您提供改进代码的帮助和建议。
答案 0 :(得分:2)
正如@Marc Mosby推荐的那样,我编辑了我的答案:
更新答案:
int j = 0;
NSMutableSet *set= [NSMutableSet set];
while (set.count < 4) {
j = arc4random_uniform(7);
[set addObject:@(j)];
}
NSArray *array = set.allObjects;
答案 1 :(得分:1)
这段代码很好。如果此处已存在相等的值,NSNumber
将不会添加到NSMutableSet
。
如果不确定,请查看此处:NSMutableSet contains Duplicates