event.touchesForView()。AnyObject()在Xcode 6.3中不起作用

时间:2015-04-10 16:57:52

标签: ios xcode swift uitouch uievent

之前完美无缺:

func doSomethingOnDrag(sender: UIButton, event: UIEvent) {
    let touch = event.touchesForView(sender).AnyObject() as UITouch
    let location = touch.locationInView(sender)
}

但是在Xcode 6.3中,我现在得到了错误:

  

无法调用没有参数的'AnyObject'

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

在1.2中,touchesForView现在返回原生Swift Set而不是NSSetSet没有anyObject()方法。

它有一个first方法,这是一回事。另请注意,您将无法再使用as?,您必须使用as?进行投射并处理零可能性,这是一种方法:

func doSomethingOnDrag(sender: UIButton, event: UIEvent) {
    if let touch = event.touchesForView(sender)?.first as? UITouch,
           location = touch.locationInView(sender) {
            // use location
    }
}

答案 1 :(得分:0)

func doSomethingOnDrag(sender: UIButton, event: UIEvent) {
    let buttonView = sender as! UIView;
    let touches : Set<UITouch> = event.touchesForView(buttonView)!
    let touch = touches.first!
    let location = touch.locationInView(buttonView)
}