我收到以下警告,没有引用它发生的行:
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,所以我不会立即知道为什么会这样 - 任何想法?
答案 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)"
}
给出相同的结果。