swift So entfernen Sie das optionale String-Zeichen
Wie Entferne ich den Optionalen Charakter
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")
Ich möchte nur die Ausgabe "http://hahaha.com/ha.php?color=Red"
Wie kann ich tun?
hmm....
InformationsquelleAutor der Frage user1272854 | 2014-10-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich, wenn Sie definieren eine variable als optional, dann müssen Sie packen, optionaler Wert. Um dieses problem zu beheben, entweder Sie deklarieren die variable als nicht-option oder put !(Ausrufezeichen) - Zeichen hinter der Variablen ändern die option Wert.
InformationsquelleAutor der Antwort Rajesh
Ich sah dieses mal wieder und ich bin Vereinfachung meiner Antwort. Ich denke, die meisten der Antworten hier sind fehlt der Punkt. Sie in der Regel drucken möchten, ob oder nicht die variable einen Wert hat und Sie auch möchten, dass das Programm nicht zum Absturz zu bringen, wenn es nicht (also nicht verwenden !). Hier nur
Dadurch erhalten Sie leer oder ist der Wert.
InformationsquelleAutor der Antwort GregP
Müssen Sie entfernen Sie das optionale bevor Sie versuchen, es über string-interpolation. Der sicherste Weg, dies zu tun ist über optional mit Bindung:
InformationsquelleAutor der Antwort Mike S
Check für null und packen Sie mit!":
InformationsquelleAutor der Antwort yh_sss
In
swift3
können Sie leicht entfernen Sie optionalInformationsquelleAutor der Antwort Mahesh Giri
Neben den Lösungen erwähnt in anderen Antworten, wenn Sie wollen immer vermeiden, Optionaler text für Ihr ganzes Projekt, können Sie dieses pod:
(https://github.com/T-Pham/NoOptionalInterpolation)
Pod fügt eine Erweiterung zu überschreiben, die string-interpolation init-Methode, um loszuwerden, der Optionale text einmal für alle. Es bietet auch eine benutzerdefinierte operator * zu bringen, und das Standard-Verhalten zurück.
Also:
Bitte Lesen Sie diese Antwort https://stackoverflow.com/a/37481627/6390582 für mehr details.
InformationsquelleAutor der Antwort Thanh Pham
Versuchen, diese,
Gehen mit der ersten, wenn Sie sicher sind, um keine null in die variable.
InformationsquelleAutor der Antwort Manoj Kumar