D'après les documents, il semble que l'appel containsString()
à une chaîne devrait fonctionner:
Le type String de Swift est ponté de manière transparente à la classe NSString de Foundation. Si vous travaillez avec le framework Foundation dans Cocoa ou Cocoa Touch, l'intégralité de l'API NSString est disponible pour appeler toute valeur de chaîne que vous créez, en plus des fonctionnalités de chaîne décrites dans ce chapitre. Vous pouvez également utiliser une valeur String avec n'importe quelle API qui nécessite une instance NSString.
Cependant, cela ne semble pas fonctionner de cette façon.
Si vous essayez d'utiliser someString.containsString(anotherString)
, vous obtiendrez une erreur de temps de compilation qui indique 'String' does not contain a member named 'containsString'
.
Donc, il vous reste quelques options, dont l'une consiste à relier explicitement votre String
à Objective-C en utilisant les bridgeToObjectiveC()
deux autres impliquent l'utilisation explicite d'un NSString
et la dernière implique de lancer le String
vers unNSString
En créant un pont, vous obtiendriez:
var string = "hello Swift"
if string.bridgeToObjectiveC().containsString("Swift") {
println("YES")
}
En tapant explicitement la chaîne en tant que an NSString
, vous obtiendrez:
var string: NSString = "hello Swift"
if string.containsString("Swift") {
println("YES")
}
Si vous en avez un String
, vous pouvez initialiser une NSString à partir de celle-ci en utilisant NSString (string :):
var string = "hello Swift"
if NSString(string: string).containsString("Swift") {
println("YES")
}
Et enfin, vous pouvez convertir un existant String
en un NSString
comme ci-dessous
var string = "hello Swift"
if (string as NSString).containsString("Swift") {
println("YES")
}