Arrays 知道数组是否包含元素类型

Arrays 知道数组是否包含元素类型,arrays,swift,nodes,contains,skspritenode,Arrays,Swift,Nodes,Contains,Skspritenode,我正在使用Swift 3和Xcode 我有一门课: class H: SKSpriteNode {...} 和一个数组: var array = [H]() 我想使用节点(at:)函数检查给定点是否存在H类型的元素。我尝试了: if nodes(at: myPoint).contains(H) 但它不起作用,我理解这一点。有没有办法知道节点(at)函数返回的数组是否包含类H中的元素 还有一个问题,如果数组包含具有特定名称的节点,我如何签入函数返回的所有节点?尝试使用.filter({$0是

我正在使用Swift 3和Xcode

我有一门课:

class H: SKSpriteNode {...}
和一个数组:

var array = [H]()
我想使用
节点(at:)
函数检查给定点是否存在H类型的元素。我尝试了:

if nodes(at: myPoint).contains(H)
但它不起作用,我理解这一点。有没有办法知道
节点(at)
函数返回的数组是否包含类H中的元素

还有一个问题,如果数组包含具有特定名称的节点,我如何签入函数返回的所有节点?

尝试使用
.filter({$0是H})。count>0
.contains(其中:{$0是H})
从Swift 4.2开始更新

//Where
class H: UIViewController { }
var myArray: [UIViewController] = [ unknownViewController, anotherUnknown )]
//Then
let doesContainH = myArray.contains(where: { $0 is H })

正如Martin R指出的,我们现在可以使用
.contains(其中:{$0是Type})

它正在工作,谢谢。和.filter({$0.name是“something”}).count>0也可以吗?更好:
.contains{$0是H}
你有任何教程来解释这整件$0的事情吗?我以前从未见过这种符号。根据Swift,正确的语法是:.contains(其中:{$0是H})。这里是@Drakalex.filter({$0.name是“something”})。count>0不起作用,因为在比较类时是“is”,而不是值。您应该使用.filter({$0.name==“something”}).count>0。