NSSet中的整数值

时间:2013-10-29 08:38:03

标签: ios objective-c

我想取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 个答案:

答案 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