【问题标题】:Swift warning - integer overflows when converted from 'Builtin.Int32' to 'Builtin.Int8'Swift 警告 - 从“Builtin.Int32”转换为“Builtin.Int8”时整数溢出
【发布时间】:2014-09-16 11:27:30
【问题描述】:

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

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

【问题讨论】:

    标签: swift int warnings


    【解决方案1】:

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

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

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

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

    或者只是

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

    给出相同的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 2011-11-07
      • 2011-10-15
      • 2016-10-06
      • 1970-01-01
      • 2014-02-14
      相关资源
      最近更新 更多