在Swift 5之前,我已经使用了该扩展程序:
fileprivate extension String {
func indexOf(char: Character) -> Int? {
return firstIndex(of: char)?.encodedOffset
}
}
现在,我收到一条已弃用的消息:
'encodedOffset' is deprecated: encodedOffset has been deprecated as most common usage is incorrect. Use `utf16Offset(in:)` to achieve the same behavior.
是否有比使用utf16Offset(in:)
更简单的解决方案?
我只需要作为Int传回的字符位置的索引即可。
答案 0 :(得分:5)
utf16Offset(in:)
有什么问题?这就是Swift 5的搭配方式
fileprivate extension String {
func indexOf(char: Character) -> Int? {
return firstIndex(of: char)?.utf16Offset(in: self)
}
}