gpt4 book ai didi

ios - 类型 'Double' 没有成员 'random'

转载 作者:行者123 更新时间:2023-11-28 11:35:55 26 4
gpt4 key购买 nike

我是 IOS 开发的新手,我正在尝试使用 swift double.random(in:) .

这是文档中的示例:

for _ in 1...3 {
print(Double.random(in: 10.0 ..< 20.0))
}
// Prints "18.1900709259179"
// Prints "14.2286325689993"
// Prints "13.1485686260762"

这是我的代码,我正在尝试生成随机颜色:

UIColor(red: Double.random(in: 1.0 ..< 251.0),
green: Double.random(in: 1.0 ..< 251.0),
blue: Double.random(in: 1.0 ..< 251.0),
aplha: 1);

但是我一直报错

Type 'Double' has no member 'random'

最佳答案

如果使用 Xcode 9,则不能使用 .random(in:)这是在 Xcode 10 中引入的。而是使用 arc4random_uniform:

let color = UIColor(red: CGFloat(arc4random_uniform(250) + 1) / 255, 
green: CGFloat(arc4random_uniform(250) + 1) / 255,
blue: CGFloat(arc4random_uniform(250) + 1) / 255,
alpha: 1)

我不确定你为什么要从 1 到 251(我显然假设你想除以 255,因为 8 位 channel 中的值范围是 0...255。使用 时arc4random_uniform,您可以通过提供 256 的参数值来实现:

let color = UIColor(red: CGFloat(arc4random_uniform(256)) / 255, 
green: CGFloat(arc4random_uniform(256)) / 255,
blue: CGFloat(arc4random_uniform(256)) / 255,
alpha: 1)

请注意上面CGFloat 的使用。通常,UIKit 使用 CGFloat,而不是 Double。所以,如果您使用的是 Xcode 10,您可以:

let color = UIColor(red: CGFloat.random(in: 0...1),
green: CGFloat.random(in: 0...1),
blue: CGFloat.random(in: 0...1),
alpha: 1)

或者你可以利用 Swift 知道这些参数的类型这一事实,让它推断出 CGFloat:

let color = UIColor(red: .random(in: 0...1),
green: .random(in: 0...1),
blue: .random(in: 0...1),
alpha: 1)

关于ios - 类型 'Double' 没有成员 'random',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55432680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com