快速警告 - 从 'Builtin.Int32' 转换为 'Builtin.Int8' 时整数溢出



我收到以下警告,但没有提及发生警告的行:

warning: integer overflows when converted from 'Builtin.Int32' to 'Builtin.Int8'

此代码中出现警告:

extension NSPoint {
func ToString() -> String {
    return "(" + self.x.description + "," + self.y.description + ")"
}
func Plus(toBeAdded : NSPoint) -> NSPoint {
    return NSPoint(x: self.x + toBeAdded.x, y: self.y + toBeAdded.y)
}
func Minus(toBeMinused : NSPoint) -> NSPoint {
    return NSPoint(x: self.x - toBeMinused.x, y: self.y - toBeMinused.y)
}
static func fromScalar(scalar : Int) -> NSPoint {
    return NSPoint(x: scalar, y: scalar)
}
}

NSPoint初始值设定项使用Int,所以我不知道为什么会是这样——有什么想法吗?

这看起来像一个错误,是由description方法引起的在您的ToString()方法中。已经出现相同的警告

let x = CGFloat(12.0)
let s = x.description

作为一种变通方法,您可以使用字符串插值:

func ToString() -> String {
    return "((self.x),(self.y))"
}

或者只是

func ToString() -> String {
    return "(self)"
}

这给出了相同的结果。

最新更新