-2

我想取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

2 回答 2

3

正如@Marc Mosby 推荐的那样,我编辑了我的答案:

更新答案:

int j = 0;
NSMutableSet *set= [NSMutableSet set];

while (set.count < 4) {
    j = arc4random_uniform(7);
    [set addObject:@(j)];
}

NSArray *array = set.allObjects;
于 2013-10-29T08:45:22.250 回答
1

这段代码很好。如果那里已经存在相等NSNumber的值,则不会添加。NSMutableSet如果不确定,请看这里:NSMutableSet contains Duplicates

于 2013-10-29T08:42:18.127 回答