Я беру сумасшедшие таблетки? Непосредственно из документации:
"Swift автоматически соединяет между типом String и классом NSString. Это означает, что везде, где вы используете объект NSString, вместо этого вы можете использовать тип Swift String и получать преимущества обоих типов: интерполяция типов String и Swift API и широкие функциональные возможности классов NSString. По этой причине вам почти не нужно будет использовать класс NSString непосредственно в вашем собственном коде. Фактически, когда Swift импортирует API Objective-C, он заменяет все типы NSString типами String. Когда ваш Objective-C код использует класс Swift, импортер заменяет все типы строк NSString в импортированном API.
Чтобы включить строковое связывание, просто импортируйте Foundation. "
Я сделал это... считаю:
import Foundation
var str = "Hello World"
var range = str.rangeOfString("e")
// returns error: String does not contain member named: rangeOfString()
Однако:
var str = "Hello World" as NSString
var range = str.rangeOfString("e")
// returns correct (2, 1)
Я что-то упустил?