gpt4 book ai didi

arrays - 无法将 "find()"方法与 UIView 类型的数组一起使用

转载 作者:行者123 更新时间:2023-11-30 10:22:12 25 4
gpt4 key购买 nike

当我尝试使用此方法时,编译器显示下一个错误:“类型‘UIView’不符合协议(protocol)‘IntegerLiteralConvertible’”

if find(_views, 1) {

}

最佳答案

该方法签名是:

find(domain: C, value: C.Generator.Element) -> C.Index?

哪里C是一个类型化数组,C.Generator.Element是该数组中元素的类型,并且 C.Index?是一个可选值,它将包含找到该元素的索引(如果找到的话)。

所以您收到的错误是因为它查看数组中的实例 UIView并尝试将它们与 1 进行比较这是一个 IntegerLiteral 。和UIView不是IntegerLiteralConvertible因为将 View 转换为整数是没有意义的。

所以find将返回可以在这些实例的数组中找到某些实例的索引。

var strings: [String] = ["A", "B", "C"]
find(strings, "C")! // 2

但你似乎不想要索引。 if find(views, 1)似乎向我表明您想检查索引是否 1存在于数组中。如果这确实是您想要的,您可以通过检查计数来非常简单地完成此操作。

if _views.count > 1 {
println("index 1 exists in this array")
}

关于arrays - 无法将 "find()"方法与 UIView 类型的数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25390845/

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