Aus den Dokumenten geht hervor, dass das Aufrufen containsString()
eines Strings funktionieren sollte:
Der String-Typ von Swift wird nahtlos mit der NSString-Klasse von Foundation verbunden. Wenn Sie mit dem Foundation-Framework in Cocoa oder Cocoa Touch arbeiten, kann die gesamte NSString-API zusätzlich zu den in diesem Kapitel beschriebenen String-Funktionen jeden von Ihnen erstellten String-Wert aufrufen. Sie können einen String-Wert auch für jede API verwenden, für die eine NSString-Instanz erforderlich ist.
Es scheint jedoch nicht so zu funktionieren.
Wenn Sie versuchen, zu verwenden someString.containsString(anotherString)
, wird ein Fehler bei der Kompilierung angezeigt, der besagt 'String' does not contain a member named 'containsString'
.
Sie haben also nur noch einige Optionen, von denen eine darin besteht, Ihre Verbindung String
zu Objective-C explizit zu überbrücken , indem Sie bridgeToObjectiveC()
zwei andere verwenden. Dabei wird explizit eine verwendet, NSString
und bei der letzten Option wird die Option String
in eine umgewandeltNSString
Durch Überbrücken erhalten Sie:
var string = "hello Swift"
if string.bridgeToObjectiveC().containsString("Swift") {
println("YES")
}
Wenn Sie die Zeichenfolge explizit als eingeben NSString
, erhalten Sie:
var string: NSString = "hello Swift"
if string.containsString("Swift") {
println("YES")
}
Wenn Sie einen vorhandenen haben String
, können Sie einen NSString mit NSString (Zeichenfolge :) daraus initialisieren:
var string = "hello Swift"
if NSString(string: string).containsString("Swift") {
println("YES")
}
Und schließlich können Sie eine vorhandene String
in eine NSString
wie unten umwandeln
var string = "hello Swift"
if (string as NSString).containsString("Swift") {
println("YES")
}