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

时间:2014-09-16 11:27:31

标签: swift int warnings

我收到以下警告,没有引用它发生的行:

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,所以我不会立即知道为什么会这样 - 任何想法?

1 个答案:

答案 0 :(得分:5)

这看起来像一个错误,是由description方法引起的 在您的ToString()方法中。

已经发生了同样的警告
let x = CGFloat(12.0)
let s = x.description

作为一种解决方法,您可以改为使用字符串插值:

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

或只是

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

给出相同的结果。