gpt4 book ai didi

swift - 上下文类型 cgfloat 不能与数组文字一起使用

转载 作者:搜寻专家 更新时间:2023-11-01 07:16:51 26 4
gpt4 key购买 nike

我正在使用 UIImage+Gradient.swift 文件为我的标签添加渐变,但出现此错误:

contextual type cgfloat cannot be used with array literal

我已经查看了一些常见问题解答,但我仍然感到困惑。

代码如下:

let components = colors.reduce([]) { (currentResult: [CGFloat], currentColor: UIColor) -> [CGFloat] in
var result = currentResult
let numberOfComponents = currentColor.cgColor.numberOfComponents
let components = currentColor.cgColor.components
if numberOfComponents == 2 {
result.append([components?[0], components?[0], components?[0], components?[1]])
} else {
result.append([components?[0], components?[1], components?[2], components?[3]])
}
return result
}

给出错误的行是这些:

result.append([components?[0], components?[0], components?[0], components?[1]]) result.append([components?[0], components?[1], components?[2], components?[3]])

最佳答案

此错误与尝试将不是数组的变量设置为数组有关。例如,这会产生类似的错误:

var myFavSnacks:String = ["Apples","Grasses","Carrots"] //gives similar error

在您的情况下,它认为您想要将一组 CGFloats 添加到数组中的一个索引,而不是将多个 CGFloats 添加到您的数组。

要一次向数组添加多个项目,请使用 contentsOf:,如下所示:

colors.append(contentsOf: ["red", "blue"]) 
//adds strings "red" and "blue" to an existing array of strings called colors

来自此处提供的文档: https://developer.apple.com/reference/swift/array

关于swift - 上下文类型 cgfloat 不能与数组文字一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41717879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com