Problem mit Zufällen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem mit Zufällen

    Hallo,
    Ich bin neu i der Programmiersprache Swift. Ich möchte eine Zufallszahl zwischen 1 und 100 generieren lassen (let Zufall = Int.random(in: 0...100)) immer wenn auf einen Button gedrückt wird ( @IBAction func Button(_ sender: Any) { Zufall }) Nun m habe ich auch ein Textfeld , in das man Zahlen hineinschreiben soll. Ist die Zahl = die Zufällig generierte Zahl hat man gewonnen. Doch es kommt immer eine Fehlermeldung: entweder" Binary operator '==' cannot be applied to operands of type 'UITextField?' and 'Int'" oder "Cannot assign value of type 'Int' to type 'String?"
    Kann mir bitte jemand helfen....
    (später soll noch angezeigt werden, wenn es nicht dieselben Zahlen sind, ob die eingegebene Zahl größer ist als die Zufallszahl oder kleiner. Bitte hilf mir ich bin noch nicht so weit... :/


    import UIKit


    class ViewController: UIViewController {


    let Zufall = Int.random(in: 0...100)
    @IBOutlet weak var TextFeld: UITextField!
    @IBOutlet weak var zuhoch: UILabel!
    @IBOutlet weak var DeinText: UILabel!
    @IBOutlet weak var Test: UILabel!
    @IBOutlet weak var zuniedrig: UILabel!
    override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    }


    @IBAction func Button(_ sender: Any) {
    if TextFeld.text = Zufall{
    DeinText.text = "Gewonnen!"
    }else if TextFeld.text > Zufall{
    zuhoch.isHidden = false
    }else{
    zuniedrig.isHidden = false
    }
    }
    }
  • Theo210703 schrieb:


    Doch es kommt immer eine Fehlermeldung: entweder" Binary operator '==' cannot be applied to operands of type 'UITextField?' and 'Int'" oder "Cannot assign value of type 'Int' to type 'String?"


    [...]

    Quellcode

    1. if TextFeld.text = Zufall{
    Kleiner Tipp zum Start: DIe Verwendung des Code-Tags macht ein Posting mit Programmcode wesentlich lesbarer...

    Zu Deinem Problem: Wie die Fehlermeldung schon sagt, versuchst Du, unterschiedliche Datentypen zu vergleichen. Das UITextField liefert einen NSString als Beschriftung, die Zufallszahl ist ein (angeblich) ein int - auch wenn ich nicht sehe, wo Du diese ermittelst. Zufallszahlen sind von Hause aus eher floats.

    Schau mal in die Dokumentation von NSString, da gibt es Methoden, die Zeichenkette (falls möglich) in andere Datentypen zu konvertieren.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Danke habe es jetzt so gelöst....
    geht das auch?

    Quellcode

    1. import UIKit
    2. class ViewController: UIViewController {
    3. @IBOutlet weak var TextFeld: UITextField!
    4. @IBOutlet weak var zuhoch: UILabel!
    5. @IBOutlet weak var DeinText: UILabel!
    6. let ranNum = Double(arc4random() % 100)
    7. @IBOutlet weak var zuniedrig: UILabel!
    8. override func viewDidLoad() {
    9. super.viewDidLoad()
    10. print(ranNum)
    11. // Do any additional setup after loading the view, typically from a nib.
    12. }
    13. @IBAction func Button(_ sender: Any) {
    14. let firstValue = Double(TextFeld.text!)
    15. if firstValue == ranNum {
    16. DeinText.isHidden = false
    17. zuhoch.isHidden = true
    18. zuniedrig.isHidden = true
    19. TextFeld.isHidden = true
    20. }else if (Double(firstValue!) > ranNum){
    21. zuhoch.isHidden = false
    22. zuniedrig.isHidden = true
    23. }else {
    24. zuhoch.isHidden = true
    25. zuniedrig.isHidden = false
    26. }
    27. }
    28. }
    Alles anzeigen