EXC_BREAKPOINT CODE=1 运行时异常

EXC_BREAKPOINT CODE=1 Runtime Exception

出于某种奇怪的原因,每当我 运行 此代码时,我都会收到 "EXC_BREAKPOINT CODE=1" 运行 时间异常:

var positionX: CGFloat = CGFloat(UInt32(width) + arc4random_uniform(UInt32(self.frame.width - 2.0 * width)))

谁能告诉我这是为什么?我不知道如何解决这个问题。

问题可能是 self.frame.width - width 可能是一个负数,它会尝试转换为 UInt32,这会中断。您可能想要调试这 2 个值并在强制转换为 UInt32 之前进行检查。将 property/parameter 应用于此公式的结果也可能存在问题。

此外,如果宽度是负数,UInt32(width) 也会失败。