'NSSet?' 不包含名为 'Generator' 的成员

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

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

 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 returns 一个可选的 NSSet,所以它必须先解包 - 我建议使用可选绑定如下:

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