Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当int已经在我的数组中时,如何返回并获取新的随机int?_Ios_Arrays_Nsmutablearray - Fatal编程技术网

Ios 当int已经在我的数组中时,如何返回并获取新的随机int?

Ios 当int已经在我的数组中时,如何返回并获取新的随机int?,ios,arrays,nsmutablearray,Ios,Arrays,Nsmutablearray,我生成随机整数,将它们放在NSNumber中并保存在数组中。现在我如何说“当数字已经在我的数组中时,返回并获取一个新的数字?” 感谢您的回答,并对我的英语不好表示歉意。这是do/while循环的一个很好的用法: if (idarray.count < 50) { NSInteger value; do { value = arc4random_uniform(50); } while ([idarray containsObject:@(value)

我生成随机整数,将它们放在NSNumber中并保存在数组中。现在我如何说“当数字已经在我的数组中时,返回并获取一个新的数字?”


感谢您的回答,并对我的英语不好表示歉意。

这是
do/while
循环的一个很好的用法:

if (idarray.count < 50) {
    NSInteger value;
    do {
        value = arc4random_uniform(50);
    } while ([idarray containsObject:@(value)]);

    [idarray addObject:@(value)];
}
if(idarray.count<50){
NSInteger值;
做{
值=arc4random_均匀(50);
}而([idarray containsObject:@(value)]);
[idarray addObject:@(值)];
}

还要注意使用了
arc4random\u uniform
和现代装箱语法。

谢谢!它有效:-)另一个问题。当所有数字都在我的数组中时,我能做什么?目前我的iPhone模拟器什么也没做。它挂起,当它找不到新的随机数时,它不在我的数组中。如果数组包含全部50个数字,您希望发生什么?我也有数字较少的数组:-)当我的do/while找不到新的数字时,我可以调用一个方法吗?如果您的数组“已满”,请不要调用代码来添加新值,因为数组中没有新值。
if (idarray.count < 50) {
    NSInteger value;
    do {
        value = arc4random_uniform(50);
    } while ([idarray containsObject:@(value)]);

    [idarray addObject:@(value)];
}