【发布时间】:2014-06-03 12:58:47
【问题描述】:
我正在尝试在 Swift/Xcode6 中使用 UITextFieldDelegate,但我正在为我应该使用 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 的更新:问题是 shouldChangeCharactersInRange 提供了一个 NSRange 对象,我们需要一个 Swift Range 对象用于 stringByReplacingCharactersInRange。这仍然可以被认为是一个错误,因为我不明白为什么我们仍然应该处理 NS* 对象?委托方法的 String 参数无论如何都是 Swift 类型。
【问题讨论】:
标签: swift