当我尝试使用此方法时,编译器会显示下一个错误:“类型'UIView'不符合协议'IntegerLiteralConvertible'”
if find(_views, 1) {
}
答案 0 :(得分:1)
该方法签名是:
find(domain: C, value: C.Generator.Element) -> C.Index?
其中C
是一个类型化数组,C.Generator.Element
是该数组中元素的类型,C.Index?
是一个可选项,它将包含找到该元素的索引,如果发现了。
所以你得到的错误是因为它查看了数组UIView
中的实例,并尝试将它们与1
IntegerLiteral
进行比较。 UIView
不是IntegerLiteralConvertible
,因为将视图转换为整数是没有意义的。
所以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")
}