Ich bin ein UITapGestureRecognizer zu einem meiner Ansichten hinzufügen:Passing Argumente programmatisch Wähler in swift3
let gesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(modelObj:myModelObj)))
self.imageView.addGestureRecognizer(gesture)
func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
Das erste Problem, das ich gestoßen war „Argument von‚#selector‘bezieht sich nicht auf eine‚@Objc 'Verfahren, das Eigentum oder initializer
Cool, so fügte ich @objc zum handleTap Signatur.
@objc func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
nun den Fehler „ich erhalte Methode kann wegen der ty markiert @objc werden pe des Parameters kann in Objective-C nicht dargestellt werden.
Es ist nur ein Bild der Karte eines Gebäudes, mit einigen Pin-Bildern, die die Position von Sonderzielen angeben. Wenn der Benutzer einen dieser Pins antippt, würde ich gerne wissen, welchen Punkt von Interesse Sie angetippt haben, und ich habe ein Modellobjekt, das diese Punkte von Interesse beschreibt. Ich benutze dieses Modell-Objekt, um dem Pin-Bild seine Koordinaten auf der Karte zu geben, also dachte ich, es wäre einfach für mich gewesen, das Objekt einfach an den Gesten-Handler zu senden.
Sie können nicht passieren Werte an einen Wähler so erstellen. Warum können Sie diesen Wert nicht in einer Instanzvariablen speichern und von der Selector-Methode aus darauf zugreifen? –
Mögliches Duplikat von http://stackoverflow.com/questions/35635595/sending-a-parameter-argument-to-function-through-uitapgesture-recognizer-selector. –