З документів виходить, що виклик containsString()на String повинен працювати:
Тип рядка Swift безперешкодно з'єднаний з класом NSString Foundation. Якщо ви працюєте з основою Foundation в Cocoa або Cocoa Touch, весь API NSString доступний для виклику будь-якого створеного вами String, крім функцій String, описаних у цій главі. Ви також можете використовувати значення String з будь-яким API, для якого потрібен екземпляр NSString.
Однак, схоже, це не працює так.
Якщо ви спробуєте використовувати someString.containsString(anotherString), ви отримаєте помилку часу компіляції, яка констатує 'String' does not contain a member named 'containsString'.
Таким чином, ви залишилися кілька варіантів, один з яких явно з'єднати СВІЙ Stringдо Objective-C за допомогою bridgeToObjectiveC()двох інших втягують в явному вигляді при допомоги пристроїв NSStringі кінцевий один включає виливок StringАньNSString
Об’єднавши, ви отримаєте:
var string = "hello Swift"
if string.bridgeToObjectiveC().containsString("Swift") {
println("YES")
}
Ввівши явно рядок у вигляді NSString, ви отримаєте:
var string: NSString = "hello Swift"
if string.containsString("Swift") {
println("YES")
}
Якщо у вас є існуючий String, ви можете ініціалізувати з нього NSString, використовуючи NSString (рядок :):
var string = "hello Swift"
if NSString(string: string).containsString("Swift") {
println("YES")
}
І, нарешті, ви можете привласнити існуюче Stringдо а, NSStringяк показано нижче
var string = "hello Swift"
if (string as NSString).containsString("Swift") {
println("YES")
}