2016-06-26 4 views
0

J'ai deux erreurs ici. J'essaie d'obtenir un UIAlertView qui apparaît lorsque le bouton est enfoncé. À partir de là, je souhaite que l'utilisateur entre un nouveau numéro (Double) et qu'il mette à jour la variable timeWorkedGoal ainsi que l'étiquette timeWorkedGoalNumber. J'obtiens l'erreur "Utilisation de l'identificateur non résolu 'UIKeyboardTypeNumberPad'" ainsi que l'erreur "La référence à la propriété 'timeWorkedGoalNumber' dans la fermeture nécessite un 'self' explicite pour rendre la sémantique de capture explicite." Est-ce que quelqu'un sait comment ma syntaxe est désactivée? Merci!Swift - Entrée de texte dans UIAlertView

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) 

} 

Répondre

0

Première question:

textF.keyboardType = UIKeyboardType.UIKeyboardTypeNumberPad 

Deuxième question:

Ajouter

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

au lieu qu'il était auparavant

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

erreur "Utilisation d'identifiant sans solution 'UIKeyboardTypeNumberPad'"

Utilisez textF.keyboardType = UIKeyboardType.NumberPad

Référence à la propriété 'timeWorkedGoalNumber' la fermeture nécessite explicite 'auto'

explique lui-même . Au lieu d'utiliser timeWorkedGoalNumber utilisation self.timeWorkedGoalNumber

aussi vous devez mettre à jour timeWorkedGoal = (Double("\(textF)"))! à self.timeWorkedGoal = (Double("\(textF)"))!

EDIT: textF est un type de UITextField ne peut donc pas être directement jeté à un Double. Insted vous pouvez utiliser textF.text qui vous renverra un String. Donc, vous aurez quelque chose comme ça Double("\(textF.text)")

+0

merci pour la solution. Je reçois toujours l'erreur suivante. http://i.imgur.com/CfanKyi.png – adman

+0

Veuillez consulter la modification. –

+0

Je reçois toujours la même erreur. – adman