Swift 5:字符串中的字符索引

时间:2019-03-27 19:02:31

标签: swift string indexof swift5

在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传回的字符位置的索引即可。

1 个答案:

答案 0 :(得分:5)

utf16Offset(in:)有什么问题?这就是Swift 5的搭配方式

fileprivate extension String {
    func indexOf(char: Character) -> Int? {
        return firstIndex(of: char)?.utf16Offset(in: self)
    }
}