2016-06-26 23 views
0

Ich habe hier zwei Fehler. Ich versuche eine UIAlertView zu erhalten, die beim Drücken der Taste erscheint. Von dort möchte ich, dass der Benutzer eine neue Nummer (Double) eingibt und dann die Variable timeWorkedGoal sowie die timeWorkedGoalNumber-Bezeichnung aktualisiert.Swift - Texteingabe in UIAlertView

Ich bekomme den Fehler "Verwendung von nicht aufgelösten Bezeichner 'UIKeyboardTypeNumberPad'" sowie den Fehler "Verweis auf Eigenschaft 'timeWorkedGoalNumber' in Schließung erfordert explizite 'Selbst'. Capture-Semantik explizit zu machen." Weiß jemand, wie meine Syntax aus ist? Vielen Dank!

var timeWorkedGoal = 1.1 


@IBOutlet weak var timeWorkedGoalNumber: UILabel! 


    @IBAction func resetTimeWorkedGoalButton(sender: AnyObject) { 
    var timeWorkedAlert = UIAlertController(title: "Time Worked", message: "Your current work time goal is \(timeWorkedGoal) hours – Enter your new goal.", preferredStyle: UIAlertControllerStyle.Alert) 

    timeWorkedAlert.addTextFieldWithConfigurationHandler { 
     (textField) in 
    } 

    timeWorkedAlert.addAction(UIAlertAction(title: "Submit", style: .Default, handler: { 
     (action) in 

     let textF = timeWorkedAlert.textFields![0] as UITextField 
     print(textF) 

     textF.keyboardType = UIKeyboardTypeNumberPad; 

     timeWorkedGoal = (Double("\(textF)"))! 

     print(timeWorkedGoal) 
     timeWorkedGoalNumber.text = "\(textF)" 

    })) 

    timeWorkedAlert.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: { 
     (action) in 

     self.dismissViewControllerAnimated(true, completion: nil) 


    })) 

    self.presentViewController(timeWorkedAlert, animated: true, completion: nil) 

} 

Antwort

0

Erste Frage:

textF.keyboardType = UIKeyboardType.UIKeyboardTypeNumberPad 

Zweite Frage:

hinzufügen

self.timeWorkedGoal = (Double("\(textF)"))! 

stattdessen war es bisher

timeWorkedGoal = (Double("\(textF)"))! 
2

Error "Die Verwendung von ungelösten Bezeichner 'UIKeyboardTypeNumberPad'"

Verwenden textF.keyboardType = UIKeyboardType.NumberPad

Verweis auf Eigenschaft 'timeWorkedGoalNumber' in Schließung erfordert explizite 'Selbst'

erklärt sich . Statt nur mit timeWorkedGoalNumber Verwendung self.timeWorkedGoalNumber

auch benötigen Sie timeWorkedGoal = (Double("\(textF)"))! zu self.timeWorkedGoal = (Double("\(textF)"))!

EDIT zu aktualisieren: textF ist eine Art von UITextField kann so nicht direkt mit einem Double gegossen werden. Insted können Sie textF.text verwenden, die Ihnen eine String zurückgibt. So werden Sie so etwas haben Double("\(textF.text)")

+0

danke für die Lösung. Ich erhalte immer noch den folgenden Fehler. http://i.imgur.com/CfanKyi.png – adman

+0

Pls siehe Bearbeiten. –

+0

Ich bekomme immer noch den gleichen Fehler. – adman