为什么在将Float转换为CGFloat Xcode时会给我一个警告"无法将类型'CGFloat'的值转换为预期的参数类型'UnsafeMutablePointer"?

hdj*_*dak 6 iphone uicolor swift xcode7 swift2

我试图将Float值转换为CGFloat值,这里是我的代码:

    let myFloatForR = 0
    let r = CGFloat(myFloatForR) 
    let myFloatForG = 0
    let g = CGFloat(myFloatForG)
    let myFloatForB = 0
    let b = CGFloat(myFloatForB)
    let myFloatForA = 0
    let a = CGFloat(myFloatForA)
    tintColor.getRed(r, green:&g, blue:&b, alpha:&a)
Run Code Online (Sandbox Code Playgroud)

但突然之间,Xcode给了我一个警告:"不能将"CGFloat"类型的值转换为"tintColor"行上预期的参数类型'UnsafeMutablePointer'吗?有人可以帮帮我吗?

deo*_*hal 8

您需要更改CGFloat对象var而不是方法中的let红色值传递指针对象getRed.

更新的代码

let myFloatForR = 0
var r = CGFloat(myFloatForR)
let myFloatForG = 0
var g = CGFloat(myFloatForG)
let myFloatForB = 0
var b = CGFloat(myFloatForB)
let myFloatForA = 0
var a = CGFloat(myFloatForA)
tintColor.getRed(&r, green:&g, blue:&b, alpha:&a)
Run Code Online (Sandbox Code Playgroud)

要么

你可以声明后,优化代码r,g,ba使用的一行代码.

var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0
tintColor.getRed(&r, green:&g, blue:&b, alpha:&a)   
Run Code Online (Sandbox Code Playgroud)