"Unrecognized selector geschickt Instanz" Fehler beim drücken UIButton in Xcode 8/Swift 3

Mache ich eine app, die erfordert, dass ein Benutzer durch drücken einer von zwei UIButtons und druckt anschließend eine Antwort-je nachdem, welcher button gedrückt wurde (ermittelt auf der Grundlage der tag der Taste gedrückt). Allerdings, wenn ich auf die Taste drücken, bekomme ich ein

Unrecognized selector geschickt Instanz

Wie kann ich dies beheben?

Hier ist mein code. Die IBAction unten bezieht sich auf die UIButtons, die den Fehler verursacht:

import UIKit

class ViewController: UIViewController {

    let story1 = "This is the story."
    let answer1 = "No change"
    let answer2 = "Lose 1 health"
    var healthStat : Int = 10


    @IBOutlet weak var storyText: UILabel!
    @IBOutlet weak var health: UILabel!
    @IBOutlet weak var restartButton: UILabel!
    @IBOutlet weak var choiceOne: UIButton!
    @IBOutlet weak var choiceTwo: UIButton!

    var storyIndex = 1

    override func viewDidLoad() {
        super.viewDidLoad()
        //Do any additional setup after loading the view, typically from a nib.

        storyText.text = story1
        choiceOne.setTitle("\(answer1)", for: .normal)
        choiceTwo.setTitle("\(answer2)", for: .normal)
        health.text = String("Health: \(healthStat)")

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        //Dispose of any resources that can be recreated.
    }

    @IBAction func buttonPressed(_ sender: UIButton) {        
        if sender.tag == 1 {
            print("Option 1 selected")
        }
        else if sender.tag == 2 {
            print("Option 2 selected. Lose 1 health.")
            healthStat = healthStat - 1
        }

    }



}

Hier ist die Gesamtheit der Fehler:

2017-07-29 21:45:24.626 Choose Your Own Adventure[16001:694686] -[Choose_Your_Own_Adventure.ViewController buttonOnePressed:]: unrecognized selector sent to instance 0x7fc199c0cfe0
2017-07-29 21:45:24.638 Choose Your Own Adventure[16001:694686] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Choose_Your_Own_Adventure.ViewController buttonOnePressed:]: unrecognized selector sent to instance 0x7fc199c0cfe0'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000113504b0b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x000000011037e141 objc_exception_throw + 48
    2   CoreFoundation                      0x0000000113574134 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    3   CoreFoundation                      0x000000011348b840 ___forwarding___ + 1024
    4   CoreFoundation                      0x000000011348b3b8 _CF_forwarding_prep_0 + 120
    5   UIKit                               0x0000000110c66d82 -[UIApplication sendAction:to:from:forEvent:] + 83
    6   UIKit                               0x0000000110deb5ac -[UIControl sendAction:to:forEvent:] + 67
    7   UIKit                               0x0000000110deb8c7 -[UIControl _sendActionsForEvents:withEvent:] + 450
    8   UIKit                               0x0000000110dea802 -[UIControl touchesEnded:withEvent:] + 618
    9   UIKit                               0x0000000110cd47ea -[UIWindow _sendTouchesForEvent:] + 2707
    10  UIKit                               0x0000000110cd5f00 -[UIWindow sendEvent:] + 4114
    11  UIKit                               0x0000000110c82a84 -[UIApplication sendEvent:] + 352
    12  UIKit                               0x00000001114665d4 __dispatchPreprocessedEventFromEventQueue + 2926
    13  UIKit                               0x000000011145e532 __handleEventQueue + 1122
    14  CoreFoundation                      0x00000001134aac01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    15  CoreFoundation                      0x00000001134900cf __CFRunLoopDoSources0 + 527
    16  CoreFoundation                      0x000000011348f5ff __CFRunLoopRun + 911
    17  CoreFoundation                      0x000000011348f016 CFRunLoopRunSpecific + 406
    18  GraphicsServices                    0x000000011542da24 GSEventRunModal + 62
    19  UIKit                               0x0000000110c65134 UIApplicationMain + 159
    20  Choose Your Own Adventure           0x000000010fd9efa7 main + 55
    21  libdyld.dylib                       0x00000001144a465d start + 1
    22  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 
  • Die Fehlermeldung zeigt buttonOnePressed:, aber der swift-code wird nicht eine Methode namens buttonOnePressed:. Möglicherweise müssen Sie wieder die Taste Aktion, um buttonPressed: oder benennen Sie Ihre buttonPressed(_:) zu buttonOnePressed(_:).
InformationsquelleAutor Will Titus | 2017-07-30
Schreibe einen Kommentar