"NSSet?"不包含名为"生成器"的成员



我正在覆盖视图的命中测试行为。

 override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView?
    {
        var touches:NSSet? = event?.allTouches()
        for touch in touches
        {
            //look at each touch
        }
    }

我需要检查触摸阶段是否已开始。但是,我似乎无法遍历所有触摸。

我收到错误

'NSSet?' does not contain a member called 'Generator'

假设这意味着我不能像迭代数组那样迭代 NSSet?

你知道 Swift 中迭代 NSSet 的正确语法吗?

问题是您正在尝试迭代可选集。您需要先将其解开。

allTouches返回一个可选的NSSet,因此必须先将其解开 - 我建议使用可选绑定,如下所示:

    if let touches = event?.allTouches() {
        for touch in touches
        {
            //look at each touch
        }
    }

最新更新