Ios 无法转换类型为';NSRange';(aka';u NSRange';)到预期类型';范围<;指数>';(aka';Range<;String.CharacterView.Index>;';)
检查字符串范围时出现此错误Ios 无法转换类型为';NSRange';(aka';u NSRange';)到预期类型';范围<;指数>';(aka';Range<;String.CharacterView.Index>;';),ios,swift,nsrange,Ios,Swift,Nsrange,检查字符串范围时出现此错误 @objc func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { let shouldChange = false let text = textField.text var newString = text!.stringByRepla
@objc func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let shouldChange = false
let text = textField.text
var newString = text!.stringByReplacingCharactersInRange(range, withString: string) as? NSString
if newString.length > 14{
newString = newString.substringToIndex(14)
}
textField.text = newString.uppercaseString
return shouldChange
}
而不是
文本代码>说(文本!作为NSString)
Swift 4
func textField(_ textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
if let oldString = textField.text {
let newString = oldString.replacingCharacters(in: Range(range, in: oldString)!,
with: string)
// ...
}
// ...
}
比较一下。
func textField(_ textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
if let oldString = textField.text {
let newString = oldString.replacingCharacters(in: Range(range, in: oldString)!,
with: string)
// ...
}
// ...
}