2016-09-22 1 views
0

Pourquoi est-ce que je reçois un Thread: 1 Signal SIGAGBRT dans ce code? Je ne sais pas quoi changer pour corriger l'erreur. L'application démarre et dès que j'appuie sur le bouton l'application annule et me donne une erreur.Sujet: 1 Signal SIGAGBRT

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet var textFieldInput: UITextField! 
    @IBOutlet var laCelsius: UILabel! 
    @IBOutlet var laFahrenheit: UILabel! 

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

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


    @IBAction func btn(sender: UIButton) { 

     var c_out = 0.0 
     var f_out = 0.0 
     var inputValue = 0.0 

     let textInput = NSString(string: textFieldInput.text!) 
     inputValue = textInput.doubleValue 

     c_out = (inputValue-32)*5/9 
     f_out = inputValue * 1.8 + 32 

     self.laCelsius.text = NSString(format: "%3.2f" ,c_out) as String 
     self.laFahrenheit.text = NSString(format: "%3.2f" ,f_out) as String 

    } 

} 

c'est le code d'erreur:

 
2016-09-22 14:15:51.669 DegreeCL[19045:1774964] -[DegreeCL.ViewController btnPressed:]: unrecognized selector sent to instance 0x7fa7bb643d40 
2016-09-22 14:15:51.674 DegreeCL[19045:1774964] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DegreeCL.ViewController btnPressed:]: unrecognized selector sent to instance 0x7fa7bb643d40' 
*** First throw call stack: 
(
    0 CoreFoundation      0x000000010de1dd85 __exceptionPreprocess + 165 
    1 libobjc.A.dylib      0x000000010fbc1deb objc_exception_throw + 48 
    2 CoreFoundation      0x000000010de26d3d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205 
    3 CoreFoundation      0x000000010dd6ccfa ___forwarding___ + 970 
    4 CoreFoundation      0x000000010dd6c8a8 _CF_forwarding_prep_0 + 120 
    5 UIKit        0x000000010e647a8d -[UIApplication sendAction:to:from:forEvent:] + 92 
    6 UIKit        0x000000010e7bae67 -[UIControl sendAction:to:forEvent:] + 67 
    7 UIKit        0x000000010e7bb143 -[UIControl _sendActionsForEvents:withEvent:] + 327 
    8 UIKit        0x000000010e7ba263 -[UIControl touchesEnded:withEvent:] + 601 
    9 UIKit        0x000000010e6ba99f -[UIWindow _sendTouchesForEvent:] + 835 
    10 UIKit        0x000000010e6bb6d4 -[UIWindow sendEvent:] + 865 
    11 UIKit        0x000000010e666dc6 -[UIApplication sendEvent:] + 263 
    12 UIKit        0x000000010e640553 _UIApplicationHandleEventQueue + 6660 
    13 CoreFoundation      0x000000010dd43301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    14 CoreFoundation      0x000000010dd3922c __CFRunLoopDoSources0 + 556 
    15 CoreFoundation      0x000000010dd386e3 __CFRunLoopRun + 867 
    16 CoreFoundation      0x000000010dd380f8 CFRunLoopRunSpecific + 488 
    17 GraphicsServices     0x00000001124b3ad2 GSEventRunModal + 161 
    18 UIKit        0x000000010e645f09 UIApplicationMain + 171 
    19 DegreeCL       0x000000010dc38412 main + 114 
    20 libdyld.dylib      0x000000011068592d start + 1 
    21 ???         0x0000000000000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 
+0

mettre le point d'arrêt et étape par étape vérifier quelle ligne provoque un accident. –

+0

Les étiquettes et le champ de texte sont-ils connectés dans Interface Builder? – vadian

+0

Je pense que vous vous connectez la mauvaise prise pour l'étiquette, le champ de texte ou le bouton, vérifiez à nouveau – Tj3n

Répondre

1

Les informations cruciales est

[DegreeCL.ViewController btnPressed:]: sélecteur non reconnu envoyé à l'instance ... »

Cela signifie que dans Interface Builder il y a quelque part une connexion à un mort action btnPressed. Retirez-le. Vous pouvez rechercher btnPressed avec ⇧⌘F

1

Sélectionnez votre bouton de constructeur d'interface, puis sélectionnez connection inspector de utilities et vérifiez que si vous avez une méthode d'action supplémentaire connecté doit être là, retirez-le en cliquant sur x et votre problème sera résolu!

Il devrait être btnPressed selon votre journal de panne!

1

SIGABRIT - le signal est envoyé pour plusieurs raisons mais dans ce cas je pense que vous avez un problème avec la mémoire.

Vous devez activer All Exeptions avec l'option po $arg1 pour identifier l'erreur.

+0

comment puis-je activer cela? –

+0

Accédez à BrakePoint Navigator (côté supérieur gauche Xcode) -> En bas, vous verrez PLUS + -> Exception BrakePoint -> Ajouter une action -> po $ arg1 -> Appuyez sur Entrée – C0mrade