Swift中的UIColor扩展错误

Arb*_*tur 3 uicolor swift

我有这个扩展名:

extension UIColor {
    func rgba(r: Int, g: Int, b: Int, a: Float) -> UIColor {
        return UIColor(red: r/255, green: g/255, blue: b/255, alpha: a)
    }    
}
Run Code Online (Sandbox Code Playgroud)

这给了我一条错误信息: Extra argument 'green' in call

我不知道为什么会发生这种情况,可能是xcode 6 beta 4或swift中的错误.

小智 8

这是因为你传递了所有错误类型的参数:r/255, g/255, b/255是Integer并且a是Float,但是UIColor的init方法接受4个参数的CGFloat.

将代码修改为:

func rgba(r: Int, g: Int, b: Int, a: Float) -> UIColor {
    let floatRed = CGFloat(r) / 255.0
    let floatGreen = CGFloat(g) / 255.0
    let floatBlue = CGFloat(b) / 255.0
    return UIColor(red: floatRed, green: floatGreen, blue: floatBlue, alpha: CGFloat(a))
}
Run Code Online (Sandbox Code Playgroud)