所以我试图将我在Objective-C中制作的游戏转换为Swift。
我试图让它工作,但它一直给我一个错误。
var actualX = (Double(arc4random() ) % Double(rangeX) ) + Double(minX);
我也尝试过:
var actualX = (arc4random() % rangeX) + minX;
我已经查看了类似问题的Stack Overflow上的其他帖子,但是没有一个帖子帮助或解决了我的问题......
答案 0 :(得分:4)
arc4random()
返回UInt32
,您%
运算符的任何参数都必须是兼容类型。
将您的变量合并到UInt32
。你没有提到它们是什么类型,但我假设它们是某种形式的整数。你可以在以后明显强迫其他类型。
var actualX = (arc4random() % UInt32(rangeX)) + UInt32(minX)
这是swift强力输入的结果。
答案 1 :(得分:1)
这对我来说很好用:
import Cocoa
let minX = 3.2
let rangeX = 42.0
let actualX = (Double(arc4random()) % rangeX) + minX
执行后,由于Swift的类型推断,actualX将是一个Double。
@otherRepliants:当然arc4random()返回一个UInt32,但为什么不把它强制转换为Double。工作正常。