De la documentation, il semble que l'appelant containsStr()
sur une Chaîne devrait fonctionner:
Swift type de Chaîne est intégrée de façon transparente à la Fondation NSString
classe. Si vous travaillez avec la Fondation dans le cadre de Cacao ou de
Cocoa Touch, l'ensemble de la NSString API est disponible à l'appel sur n'importe quel
Valeur de chaîne que vous créez, en plus de la Chaîne fonctionnalités décrites
dans le présent chapitre. Vous pouvez également utiliser une Chaîne de valeur avec une API qui
nécessite un NSString instance.
Cependant, il ne semble pas fonctionner de cette façon.
Si vous essayez d'utiliser someString.containsString(anotherString)
, vous obtiendrez une erreur de compilation que les états 'String' does not contain a member named 'containsString'
.
Donc, vous êtes de gauche avec quelques options, dont l'une est explicitement pont de votre String
d'Objective-C en utilisant bridgeToObjectiveC()
deux autres impliquent explicitement à l'aide d'un NSString
et la dernière consiste en un moulage de la String
d'un NSString
Par pontage, vous obtiendrez:
var string = "hello Swift"
if string.bridgeToObjectiveC().containsString("Swift") {
println("YES")
}
En tapant la chaîne comme un NSString
, vous obtenez:
var string: NSString = "hello Swift"
if string.containsString("Swift") {
println("YES")
}
Si vous avez un String
, vous pouvez initialiser un NSString à l'aide de NSString(chaîne:):
var string = "hello Swift"
if NSString(string: string).containsString("Swift") {
println("YES")
}
Et enfin, vous pouvez lancer une existante String
d'un NSString
comme ci-dessous:
Si vous disposez déjà d'une Chaîne de caractères, vous pouvez initialiser un NSString à l'aide de NSString(chaîne:):
var string = "hello Swift"
if (string as NSString).containsString("Swift") {
println("YES")
}