我有这条线:
randomIndex = Int(drand48() % Double(alphabetColors.count))
Run Code Online (Sandbox Code Playgroud)
而Xcode 8(Swift 3)告诉我:
'%' is unavailable: Use truncatingRemainder instead
Run Code Online (Sandbox Code Playgroud)
还没有操作员吗?我该如何转换代码?
Log*_*gan 30
这似乎可用于我,目前在Swift 3.1上,所以有可能它被添加回来.
我的猜测是它在基金会的某个地方需要一个明确的 import Foundation
更新
这仅适用于Int类型.似乎对于双打,需要截断余数.
OOP*_*Per 29
您只需按照诊断消息:
let randomIndex = Int(drand48().truncatingRemainder(dividingBy: Double(alphabetColors.count)))
Run Code Online (Sandbox Code Playgroud)
或使用arc4random_uniform(_:)
将是一个更好的选择.
let randomIndex = Int(arc4random_uniform(UInt32(alphabetColors.count)))
Run Code Online (Sandbox Code Playgroud)
根据新的 Swift 5 指南,它发生了变化
value.truncatingRemainder(dividingBy: 2)
Run Code Online (Sandbox Code Playgroud)