A partir dos documentos, parece que chamar containsString()
uma String deve funcionar:
O tipo String do Swift é feito a ponte sem problemas com a classe NSString da Foundation. Se você estiver trabalhando com a estrutura Foundation no Cocoa ou no Cocoa Touch, toda a API do NSString estará disponível para chamar qualquer valor de String que você criar, além dos recursos de String descritos neste capítulo. Você também pode usar um valor String em qualquer API que exija uma instância NSString.
No entanto, não parece funcionar dessa maneira.
Se você tentar usar someString.containsString(anotherString)
, você receberá um erro de tempo de compilação informando 'String' does not contain a member named 'containsString'
.
Portanto, você tem algumas opções, uma das quais é explicitamente conectar-se String
ao Objective-C usando bridgeToObjectiveC()
outras duas que envolvam explicitamente o uso de um NSString
e a final envolve converter o String
para umNSString
Ao fazer a ponte, você obtém:
var string = "hello Swift"
if string.bridgeToObjectiveC().containsString("Swift") {
println("YES")
}
Digitando explicitamente a string como um NSString
, você obtém:
var string: NSString = "hello Swift"
if string.containsString("Swift") {
println("YES")
}
Se você já possui um String
, pode inicializar um NSString usando NSString (string :):
var string = "hello Swift"
if NSString(string: string).containsString("Swift") {
println("YES")
}
E, finalmente, você pode converter um existente String
em um NSString
como abaixo
var string = "hello Swift"
if (string as NSString).containsString("Swift") {
println("YES")
}