知道数组是否包含一种元素

时间:2016-11-17 18:55:17

标签: arrays swift nodes contains skspritenode

我正在使用Swift 3和Xcode。

我有一个班级:

class H: SKSpriteNode {...}

一个数组:

var array = [H]()

我想检查nodes(at:)函数,如果在给定点,有一个类型为H的元素。我试过:

if nodes(at: myPoint).contains(H)

但它不起作用,我明白了。有没有办法能够知道nodes(at)函数返回的数组是否包含H类中的元素?

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

2 个答案:

答案 0 :(得分:6)

尝试使用.filter({$0 is H}).count > 0

答案 1 :(得分:0)

从Swift 4.2开始更新

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

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