gpt4 book ai didi

swift - 功能在带有 arc4random 的 iPhone 5 上不起作用

转载 作者:行者123 更新时间:2023-11-30 10:09:48 26 4
gpt4 key购买 nike

我的一个功能有问题:我的应用程序在 iPhone 5s、6 等设备上完美运行,但在 iPhone 5 上我的代码有问题。当我的函数被调用时,我总是遇到这个问题:

switch choixDeCote {

case 1 : //Haut
let MinValue = self.size.width / 8
let MaxValue = self.size.width - 200
SpawnX = UInt32(MaxValue - MinValue)
SpawnX = arc4random_uniform(SpawnX)
SpawnY = UInt32(self.size.height)
directionX = Int(arc4random()) % Int(self.frame.size.width)
print(directionX)
directionY = 0
action = SKAction.moveTo(CGPoint(x: CGFloat(directionX),y: CGFloat(directionY)),duration: 4)
break

Xcode 说 directionX = Int(arc4random()) % Int(self.frame.size.width)有问题,但不知道是哪一个。

最佳答案

arc4random() 返回一个 UInt32。在 iPhone 5 这样的 32 位机器上,这可能会溢出 Int

我建议改为:

directionX = Int(Int32(bitPattern: arc4random_uniform(UInt32(self.frame.size.width))))

Int32(bitPattern:) 只是一种预防措施,并不是真正必要的,因为 self.frame.size.width 比 MAXINT32 小得多,因此随机生成的数字不会溢出 Int。你可以这样做:

directionX = Int(arc4random_uniform(UInt32(self.frame.size.width)))

关于swift - 功能在带有 arc4random 的 iPhone 5 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584841/

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