新的Xcode 7.3错误 - 对'view'的模糊不清

时间:2016-04-19 02:47:00

标签: xcode swift xcode7.3

以下代码在升级到Xcode 7.3之前正常工作;

func myMethod(){

            let tapGesture = UITapGestureRecognizer(target: self, action: #selector(CreateButtonObject.notifyButtonAction(_:)))
            let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(CreateButtonObject.notifyButtonAction(_:)))
            tapGesture.numberOfTapsRequired = 1

}

@IBAction @objc func notifyButtonAction (sender: AnyObject) {

    let userInfo:Dictionary<String,AnyObject!>
    print("Sender from tap or longpress: \(sender)")
    **let button = sender.view as! UIButton**
    let soundName = button.currentTitle!

    userInfo = ["sender" : sender]

    NSNotificationCenter.defaultCenter().postNotificationName(sleepEZButtonActionNotificationKey, object: nil, userInfo: userInfo)

    DDLogDebug("CreateButtonObject.notifyButtonAction: Notificaiton! ButtonViewController")
    DDLogDebug("CreateButtonObject.notifyButtonAction: Posted Notification sleepEZButtonActionNotificationKey to initiate buttonAction")
    DDLogDebug("CreateButtonObject.notifyButtonAction: Button Name: \(soundName)")
    DDLogDebug("")
}

但是现在当我在Xcode 7.3中执行此操作时,我在sender.view的行中出现以下错误; 模糊地使用'view'

后面是编译器错误。

任何人都知道这里发生了什么,以及如何解决。无法弄清楚这一点。基本上我需要从创建的UITapGesureRecognizer对象中获取UIButton属性,然后在按下按钮时激活。卡住。

提前致谢...

1 个答案:

答案 0 :(得分:3)

在声明func notifyButtonAction (sender: AnyObject)中,您已将sender键入为AnyObject。但是AnyObject没有view。因此,在您的第sender.view as! UIButton行中,短语sender.view是非法的。

sender键入为UIGestureRecognizer,如果它是这样的:func notifyButtonAction (sender: UIGestureRecognizer)。手势识别器确实有view,所以一切都会很好。