2017-08-21 1 views
-1

Bitte helfen und es tut mir leid, wenn dies irgendwo anders abgedeckt ist, obwohl ich woanders gesucht habe und während es Antworten zu meinem Thema gibt, kann ich kein für mein Problem finden. also wenn jemand helfen könnte wäre das toll.Verwendung von Switch-Anweisung in einem Button

im Grunde versuche ich innerhalb eines Knopfes eine switch-Anweisung zu tun, so dass, wenn ich auf die Schaltfläche klicken die Aussage in meinem Label ich es nicht hier zu arbeiten, aber aus irgendeinem Grund aktiviert ist mein Code unten

enter image description here

wenn ich traf es immer laufen zeigt das „Dies ist eine gerade Zahl zwischen 0 und 10“ unabhängig von gerade Zahl, ungerade Zahl oder große Anzahl

Jede Hilfe sehr

geschätzt würde

vielen Dank

+2

Willkommen bei Stackoverflow. Bitte posten Sie keine Bilder. Postleitzahl als Text – vadian

+0

Sie pas nur gerade Zahl deshalb immer immer gerade .... Ändern Sie die Zahl varible zu 1 ist die Rückkehr ungerade –

+0

Vielen Dank Sollte ich wieder posten oder lassen Sie es – Winston

Antwort

0

Kurz vor der switch Zeile müssen Sie drei Zeilen hinzufügen, um den Wert des Eingabetextfeldes der Variablen number zuzuweisen.

guard let inputText = numberInput.text, let input = Int(inputText) else { 
         numberOutput.text = "Please enter a number!" 
         return } 
number = input 
+0

Versucht dies, aber xcode sagte mir "Wächter Körper kann nicht durchfallen, in Betracht ziehen, eine Rückkehr oder werfen, um das Zielfernrohr zu verlassen". Danke – Winston

+0

Mein schlechtes, ich habe die 'Rückkehr' Aussage vergessen. – vadian

+0

Ich kenne diesen Sound albern zu dir, aber was bin ich zurück – Winston

0

Dieser Code funktioniert gut in Spielplatz, druckt immer erwartete Ausgabe.

var number = 6 

switch number { 
case 0,2,4,6,8,10: 
    print("even") 
case 1,3,5,7,9: 
    print("odd") 
default: 
    print("higher") 
} 

wo ändern Sie die Zahlenvariable? Machst du es auf eine der Callback-Methoden für Textfelddelegaten?

+0

Ich änderte die Zahlvariable in meinem Textfeld, wenn ich den Simulator laufen lasse. – Winston

0

Sie ändern nicht den Wert Ihrer var number. Sieht aus wie es ist immer 6 basierend auf Ihrem Code

+0

Welchen Code müsste ich verwenden, um eine Zahl in mein Textfeld einzufügen, und es druckt die entsprechende Aussage in meinem Etikett. Danke – Winston

+0

Sie können ein 'number = numberInput.text' direkt vor der switch-Anweisung hinzufügen – dypbrg

+0

Dies hat nicht funktioniert. Erzähl mir, ich konnte Int Int mit Str im Grunde nicht mischen – Winston

0

Sie können dies einfach tun:

import UIKit 

class EmptyViewController: UIViewController 
{ 
    @IBOutlet weak var label: UILabel! 
    @IBOutlet weak var textField: UITextField! 

    @IBAction func buttonHit(_ sender: UIButton) 
    { 
     if let text = textField.text, let number = Int(text) 
     { 
      switch number { 
      case 0,2,4,6,8,10: 
       label.text = "Even" 
      case 1,3,5,7,9: 
       label.text = "Odd" 
      default: 
       label.text = "Higher" 
      } 
     } 
     else 
     { 
      label.text = "Please enter a valid number" 
     } 
    } 
} 
+0

Danke PGDev hat das versucht und funktioniert super. Bin dankbar – Winston

Verwandte Themen