2016-12-01 4 views
1
import UIKit 

class ViewController: UIViewController { 

@IBOutlet weak var currencySegment: UISegmentedControl! 

@IBOutlet weak var sourceMoneyField: UITextField! 

@IBOutlet weak var targetMoneyLabel: 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 convertMoney(_ sender: Any) { 
    let ratio : Double 
    switch currencySegment.selectedSegmentIndex { 
    case 0: 
     ratio = 0.00085 
    case 1: 
     ratio = 1178.5 
    default : 
     ratio = 1.0 
    } 
    let targetMoneyString: String 
    if let sourceMoney = Double(sourceMoneyField.text!){ 
     targetMoneyString = "\(sourceMoney * ratio)" 
    }else { 
     targetMoneyString = "Error" 
    } 

    targetMoneyLabel.text = targetMoneyString 
} 
} 

Im letzten Teil, ich Fehler, die:Swift, Thread 1: EXC_BAD_INSTRUCTION Fehler

Gewinde 1: exc_bad_instruction (code = exc_i386_invop, Subcode = 0x0) -Fehler

Zum Teil.

Ich denke, ich muss letzten Satz ändern, ich versuche zu lesen und viele Videos zu sehen, um es zu beheben, aber ich kann nicht.

Liegt das Problem im Zusammenhang mit nil? Ich bin neu in Swift.

+1

haben Sie erneut überprüft Ihre Ausgänge richtig angeschlossen sind? –

+0

in meinem Spielplatz ist der Code richtig funktioniert, ich bin kein Fehler immer –

+0

wenn targetMoneyLabel! = Nil { targetMoneyLabel.text = targetMoneyString } Verwendung dieser Code statt letzte Zeile, wenn app nicht abstürzt, dann müssen Sie Schließen Sie die Steckdosen wieder an –

Antwort

0

Das Problem muss zum Entpacken der Variablen sein.

Sie können dies versuchen:

guard let targetMoneyString.characters.count > 0 else { 
    return 
} 
targetMoneyLabel.text = targetMoneyString 
+0

ich tat, aber es machte ein anderes Problem, das "Variable Bindung in einer Bedingung erfordert einen Initialisierer". –

+0

Gute Nachrichten sind, dass ich sowieso vergangenen Fehler behoben habe. Vielen Dank! Ihr Vorschlag war so gut ^^, ich werde es weiter versuchen –

Verwandte Themen