Aus den Dokumenten heraus scheint es, dass der Aufruf von containsString()
auf einem String funktionieren sollte:
Swift's String-Typ ist nahtlos mit der Foundation-NSString-Klasse verbunden. Wenn Sie mit dem Foundation-Framework in Cocoa oder Cocoa Touch arbeiten, steht Ihnen die gesamte NSString-API zur Verfügung, die auf jedem erstellten String-Wert aufgerufen werden kann, zusätzlich zu den in diesem Kapitel beschriebenen String-Funktionen. Sie können auch einen String-Wert mit jeder API verwenden, die eine NSString-Instanz erfordert.
Es scheint jedoch nicht auf diese Weise zu funktionieren.
Wenn Sie versuchen, someString.containsString(anotherString)
zu verwenden, erhalten Sie einen Kompilierungsfehler, der besagt 'String' enhält kein Element namens 'containsString'
.
Sie haben also einige Optionen, eine davon besteht darin, Ihren String
explizit auf Objective-C zu überbrücken, indem Sie bridgeToObjectiveC()
verwenden oder andere zwei beinhalten die explizite Verwendung eines NSString
und die letzte erfordert das Umwandeln des String
in ein NSString
Durch die Überbrückung würden Sie folgendes erhalten:
var string = "Hallo Swift"
if string.bridgeToObjectiveC().containsString("Swift") {
println("JA")
}
Durch das explizite Tippen des Strings als NSString
erhalten Sie:
var string: NSString = "Hallo Swift"
if string.containsString("Swift") {
println("JA")
}
Wenn Sie einen vorhandenen String
haben, können Sie ein NSString daraus initialisieren, indem Sie NSString(string:) verwenden:
var string = "Hallo Swift"
if NSString(string: string).containsString("Swift") {
println("JA")
}
Und schließlich können Sie einen vorhandenen String
wie folgt in ein NSString
umwandeln
var string = "Hallo Swift"
if (string as NSString).containsString("Swift") {
println("JA")
}