'String'类型的值没有成员'characterAtIndex'

blu*_*all 5 nsstring swift

我正在使用以下UITextFieldDelegate方法:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool {
Run Code Online (Sandbox Code Playgroud)

并尝试访问第一个字符时获取上面的错误消息:

let firstChar = string.characterAtIndex(0)
Run Code Online (Sandbox Code Playgroud)

我不知道这段代码有什么问题,因为NSString类引用列出了这个函数:

func characterAtIndex(_ index: Int) -> unichar
Run Code Online (Sandbox Code Playgroud)

你知道我做错了什么吗?

Kir*_*ins 6

您必须明确桥接(强制转换)String为NSString:

(string as NSString).characterAtIndex(0)
Run Code Online (Sandbox Code Playgroud)