Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.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 iphone5s上的随机颜色生成_Ios_Iphone_Arc4random - Fatal编程技术网

Ios iphone5s上的随机颜色生成

Ios iphone5s上的随机颜色生成,ios,iphone,arc4random,Ios,Iphone,Arc4random,我有以下生成随机彩色物镜C的代码: - (UIColor*) randomColor { return [UIColor colorWithRed:(arc4random_uniform(255) / 255.0) green: (arc4random_uniform(255) / 255.0) blue:(arc4random_uniform(255) / 255.0) alpha:1]; } 它在我所有的模拟中都按预期工作。然而,现在它

我有以下生成随机彩色物镜C的代码:

- (UIColor*) randomColor
{
    return [UIColor colorWithRed:(arc4random_uniform(255) / 255.0) green:
           (arc4random_uniform(255) / 255.0) 
           blue:(arc4random_uniform(255) / 255.0) alpha:1];
}
它在我所有的模拟中都按预期工作。然而,现在它已经发送给了一些测试人员,它总是为使用iphone5s的人生成黑色的0,0,0。对于一个5C的朋友和一对4S的朋友都不会发生这种情况。我不知道如何找出这个错误。有人知道为什么会这样吗


编辑:一位iPhone 6的测试人员证实了同样的问题,所以我认为版本与此无关。但是,对于其他人来说,它仍然可以正常工作。

因为要生成0到1之间的随机数,应该使用drand48而不是arc4random\u


请你回复一下这个解决方案的效果如何?我设置了一个示例项目,在模拟器上得到了5倍完全相同的绿色。我使用了这个更改并重新提交了我的应用程序。在模拟中,这种方法似乎有效,但在此之前,我的代码也在模拟中起作用。如果我的应用程序通过了,并且这段代码成功了,我会在几天后回复。但是,如果您得到的是绿色非黑色,您可能会遇到与我不同的问题。好的,请在测试恢复时回复,以便我知道这在实际设备上有效。虽然使用drand48可能是获得0到1之间的值的好方法,但OP的代码应该没有问题。为什么arc4random_uniform255/255.0在64位设备上只给出0?同样的问题。仍然不会在模拟中出现。
- (UIColor*) randomColor
{
    return [UIColor colorWithRed:drand48() green:drand48() blue:drand48() alpha:1];
}