为什么在将 Float 转换为 CGFloat 时 Xcode 给我警告 "Cannot convert value of type 'CGFloat' to expected argument type 'UnsafeMutablePointer"?
Why when converting Float to CGFloat Xcode give me a warning "Cannot convert value of type 'CGFloat' to expected argument type 'UnsafeMutablePointer"?
我正在尝试将 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)
但是 Xcode 突然给我一个警告说:"Cannot convert value of type 'CGFloat' to expected argument type 'UnsafeMutablePointer" 在 "tintColor" 行?
谁能帮帮我?
它们必须是可选的:
let myFloatForR: Float = 0
var r: CGFloat? = CGFloat(myFloatForR)
let myFloatForG: Float = 0
var g: CGFloat? = CGFloat(myFloatForG)
let myFloatForB: Float = 0
var b: CGFloat? = CGFloat(myFloatForB)
let myFloatForA: Float = 0
var a: CGFloat? = CGFloat(myFloatForA)
tintColor.getRed(r, green:&g, blue:&b, alpha:&a)
编辑:正如 deoKaushal 所指出的,它们也不能是常量。
您需要将 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)
或
您可以在使用单行代码声明 r
、g
、b
和 a
后优化您的代码。
var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0
tintColor.getRed(&r, green:&g, blue:&b, alpha:&a)
我正在尝试将 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)
但是 Xcode 突然给我一个警告说:"Cannot convert value of type 'CGFloat' to expected argument type 'UnsafeMutablePointer" 在 "tintColor" 行? 谁能帮帮我?
它们必须是可选的:
let myFloatForR: Float = 0
var r: CGFloat? = CGFloat(myFloatForR)
let myFloatForG: Float = 0
var g: CGFloat? = CGFloat(myFloatForG)
let myFloatForB: Float = 0
var b: CGFloat? = CGFloat(myFloatForB)
let myFloatForA: Float = 0
var a: CGFloat? = CGFloat(myFloatForA)
tintColor.getRed(r, green:&g, blue:&b, alpha:&a)
编辑:正如 deoKaushal 所指出的,它们也不能是常量。
您需要将 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)
或
您可以在使用单行代码声明 r
、g
、b
和 a
后优化您的代码。
var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0
tintColor.getRed(&r, green:&g, blue:&b, alpha:&a)