event.allTouches()?.allObjects.last

event.allTouches()?.allObjects.last

现在 swift 2.0,IOS 8.3 此代码不再有效。 'Set' 没有名为 'allObjects'

的成员
public override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

    var touch: UITouch = event.allTouches()?.allObjects.last as UITouch!
}

我尝试了很多东西,但似乎没有任何效果,知道吗?

谢谢

我也注意到了。我不确定这是否是这些天原始代码的实际变化……我敢肯定不是。但我只是将该代码更改为:

(touches: NSObject, withEvent event: UIEvent)

抱歉,如果这对您不起作用。它对我来说一直很好用。

Swift 1.2 引入了原生的 Set 类型,但与 NSSet 不同的是它没有 anyObject 方法。你有几个选择。您可以使用 first() 方法,也可以利用桥接 Swift Set 到 NSSet -

的能力
let touch = touches.first() as? UITouch

let touchesSet=touches as NSSet
let touch=touchesSet.anyObject() as? UITouch