生成 UIInt8 而不是 UIInt32 的随机方法?

Random-method that generates a UIInt8 instead of UIInt32?

我想随机生成精灵的位置。我使用 arc4random() 方法获取 1 到 8 的范围。

 var randomFactor = arc4random_uniform(8) + 1

sprite.position = CGPointMake(self.frame.width/8 * randomFactor, self.frame.height)

弹出一个错误告诉我 "UIInt32 is not convertible to UIInt8"。 有没有办法解决这个问题或以不同的方式设计代码以使其工作?就像随机方法不是 UIInt32 而是 UIInt8 的解决方案一样。 提前致谢。

您应该将 'randomFactor' 转换为 CGFloat:

var randomFactor = arc4random_uniform(8) + 1
var x = self.frame.width / 8 * CGFloat(randomFactor)
var y = self.frame.height
var position = CGPointMake(x, y)