swift Comment faire pour supprimer facultatif Chaîne de Caractères
Comment puis-je supprimer le Caractère Facultatif
let color = colorChoiceSegmentedControl.titleForSegmentAtIndex(colorChoiceSegmentedControl.selectedSegmentIndex)
println(color) //Optional("Red")
let imageURLString = "http://hahaha.com/ha.php?color=\(color)"
println(imageURLString)
//http://hahaha.com/ha.php?color=Optional("Red")
Je veux juste sortie "http://hahaha.com/ha.php?color=Red"
Comment puis-je faire?
hmm....
Vous devez vous connecter pour publier un commentaire.
En fait lorsque vous définissez une variable comme une option, puis vous avez besoin de déballer ce valeur facultative. Pour résoudre ce problème, vous devez déclarer la variable comme non option ou le mettre !(exclamation) marque derrière la variable à déballer la valeur de l'option.
This is not optional
Mal, c'est un IUO, un "implicitement déballé en option". Sa valeur est automatiquement déballé lors de l'accès. Si il est nul, l'application crash.J'ai regardé à nouveau et je simplifie ma réponse. Je pense que la plupart des réponses sont à côté de la question. Vous voulez généralement à imprimer si oui ou non votre variable a une valeur et vous aussi vous voulez votre programme de ne pas tomber en panne si ce n'est pas (donc ne l'utilisez pas !). Ici viens de le faire
Cela vous donnera le vide ou la valeur.
Vous avez besoin de déballer l'option avant d'essayer de l'utiliser via la chaîne de l'interpolation. La meilleure façon de le faire est par l'intermédiaire de de fixation en option:
Vérifier pour les nuls et défaites à l'aide de "!":
if let
ouguard
de lier en option à une constante variable. (Voir la réponse de Mike)Dans
swift3
vous pouvez facilement supprimer l'optionOutre les solutions mentionnées dans d'autres réponses, si vous voulez toujours à éviter que le texte Facultatif pour l'ensemble de votre projet, vous pouvez ajouter ce pod:
(https://github.com/T-Pham/NoOptionalInterpolation)
Le pod ajoute une extension pour remplacer la chaîne d'interpolation méthode init de se débarrasser de l'Option de texte une fois pour toutes. Il fournit également une coutume de l'opérateur * de porter le comportement par défaut en arrière.
Donc:
Veuillez voir cette réponse https://stackoverflow.com/a/37481627/6390582 pour plus de détails.
Essayer cela,
Aller avec tout d'abord si vous êtes sûres de ne pas avoir de néant dans votre variable.
if let
ouguard let else
déballer pour s'assurer qu'il n'est pas nul.Utilisation
let imageURLString = "http://hahaha.com/ha.php?color=\(color! as! String)"
A fonctionné pour moi!