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 Stringzu Objective-C explizit zu überbrücken , indem Sie bridgeToObjectiveC()zwei andere verwenden. Dabei wird explizit eine verwendet, NSStringund bei der letzten Option wird die Option Stringin 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 Stringin eine NSStringwie unten umwandeln
var string = "hello Swift"
if (string as NSString).containsString("Swift") {
println("YES")
}