De los documentos, parece que invocar containsString()
una cadena debería funcionar:
El tipo de cadena de Swift se conecta sin problemas a la clase NSString de Foundation. Si está trabajando con el framework Foundation en Cocoa o Cocoa Touch, toda la API de NSString está disponible para invocar cualquier valor de String que cree, además de las características de String descritas en este capítulo. También puede usar un valor de cadena con cualquier API que requiera una instancia de NSString.
Sin embargo, no parece funcionar de esa manera.
Si intenta utilizar someString.containsString(anotherString)
, obtendrá un error de tiempo de compilación que indica 'String' does not contain a member named 'containsString'
.
Por lo tanto, le quedan algunas opciones, una de las cuales es unir explícitamente su String
objetivo con Objective-C mediante el uso de bridgeToObjectiveC()
otros dos que implican explícitamente el uso de NSString
y el último implica lanzar el String
a unNSString
Al hacer un puente, obtendría:
var string = "hello Swift"
if string.bridgeToObjectiveC().containsString("Swift") {
println("YES")
}
Al escribir explícitamente la cadena como un NSString
, obtendría:
var string: NSString = "hello Swift"
if string.containsString("Swift") {
println("YES")
}
Si tiene un existente String
, puede inicializar un NSString a partir de él utilizando NSString (string :):
var string = "hello Swift"
if NSString(string: string).containsString("Swift") {
println("YES")
}
Y, por último, puede emitir un existente String
a un de la NSString
siguiente manera
var string = "hello Swift"
if (string as NSString).containsString("Swift") {
println("YES")
}