Я пытаюсь использовать UITextFieldDelegate в Swift/Xcode6, и я борюсь с тем, как я должен использовать stringByReplacingCharactersInRange. Ошибка компилятора: "Невозможно преобразовать тип выражения" String "в тип" $T8 ".
func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool
{
let s = textField.text.stringByReplacingCharactersInRange(range:range, withString:string)
if countElements(s) > 0 {
} else {
}
return true
}
Обновление для Xcode 6 Beta 5: Дело в том, что mustChangeCharactersInRange предоставляет объект NSRange, и нам нужен объект Swift Range для stringByReplacingCharactersInRange. Может ли это по-прежнему считаться ошибкой, поскольку я не понимаю, почему мы все еще должны иметь дело с объектами NS *? Аргумент String метода делегата в любом случае имеет тип Swift.