Konvertieren unichar zu String?
Ich bin immer ein unichar
zurückgegebene Typ von NSString
's Instanz-Methode characterAtIndex(Int)
und ich möchte es vergleichen mit einem Swift Typ String
. Gibt es eine einfache Möglichkeit, dies zu tun?
var str = "#ffffff"
var unichar = (str as NSString).characterAtIndex(0)
var unicharString = //Perform magic
var containsHash = unicharString == "#" // Should return `true`
Dank
- Warum nicht
var containsHash = str.hasPrefix("#")
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
str[0]
das hat nicht funktioniert. Ich war nicht bewusstString.Index
so dass ich nur verwendetNSString.characterAtIndex
. Ich war auch nicht bewusst, dass der String tatsächlich hat Zugriff auf NSString die gesamte API (mitNSString.length
umbenannt, umutf16count
)String.characterAtIndex(Int)
meldet einen Fehler, es zu sagen, nicht vorhanden, obwohl es verfügbar sein sollte (nach dem ersten Hinweis in apples String-Dokumentation).String
nichtcharacterAtIndex
Methode. NurNSString
tut. Sie können jedoch immer wirkenNSString
zuString
oder Umgekehrt. Die 3. variableunicharString
ist völlig unnötig, nurunichar == "#"
ist genug.Verwenden UnicodeScalar zu unichar konvertiert in String-oder Zeichen (element String).
typealias unichar = UInt16
).init(_ v: UInt16)
.init(_ scalar: UnicodeScalar)
.Hinweis: die Zeichenfolge hat auch
init(count: Int, repeatedValue c: UnicodeScalar)
, aber das ist für diesen Fall nicht geeignet.String(UnicodeScalar(unichar))
für die string-Konvertierung.