Der folgende Code funktionierte ordnungsgemäß vor dem Upgrade auf Xcode 7.3;Neuer Xcode 7.3-Fehler - Mehrdeutig von 'view'
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("")
}
Aber jetzt, wenn ich das in Xcode 7.3 ich folgende Fehlermeldung auf der Linie mit sender.view erhalten; Mehrdeutige Verwendung von 'view'
gefolgt von einem Compiler-Fehler.
Wer weiß, was hier vorgeht und wie zu beheben. Kann das nicht herausfinden. Grundsätzlich muss ich die UIButton-Attribute aus dem UITapGesureRecognizer-Objekt abrufen, das erstellt und dann bei einem Tastendruck aktiviert wird. Stecken.
Vielen Dank im Voraus ...
Übrigens ist der Ausdruck @IBAction @ objc redundant. '@ IBAction' impliziert' @ objc'. – matt
Vor dem 7.3 Upgrade habe ich nur "@IBAction" verwendet, aber nach dem Empfang von Fehlern beim Kompilieren. Fehler zeigte an, dass ich "@objc" hinzufügen musste, also tat ich es. Keine Fehler mehr. Der Fehler rührt von der Änderung her, #selector zu verwenden und die vorherige Syntax und Verwendung von Selector abzulehnen. – zenmobi