event.touchesForView()。AnyObject()在Xcode 6.3中不起作用
这之前完美无缺:
func doSomethingOnDrag(sender: UIButton, event: UIEvent) { let touch = event.touchesForView(sender).AnyObject() as UITouch let location = touch.locationInView(sender) }
但在Xcode 6.3中,我现在得到错误:
不能在没有参数的情况下调用’AnyObject’
我该如何解决?
在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 } }
func doSomethingOnDrag(sender: UIButton, event: UIEvent) { let buttonView = sender as! UIView; let touches : Set = event.touchesForView(buttonView)! let touch = touches.first! let location = touch.locationInView(buttonView) }