之前完美无缺:
func doSomethingOnDrag(sender: UIButton, event: UIEvent) {
let touch = event.touchesForView(sender).AnyObject() as UITouch
let location = touch.locationInView(sender)
}
但是在Xcode 6.3中,我现在得到了错误:
无法调用没有参数的'AnyObject'
我该如何解决这个问题?
答案 0 :(得分:6)
在1.2中,touchesForView
现在返回原生Swift Set
而不是NSSet
,Set
没有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)
}