2017-10-07 26 views
0

我得到的类型String.index(又名string.CharacterView.index)不符合协议_Strideable类型`String.index(aka`string.CharacterView.index`)不符合protocol`_Strideable`

problem code picture

如何解决这个问题?

+1

你能发布您的代码作为文本,而不是作为一个形象呢? –

+0

更新到Swift 4.有一个'NSRange'的初始值设定项,它在你的示例'let range = NSRange(stringRange,in:self)'中接受一个'Range ',并总是比较'prefer.isEmpty' 'matches.count == 0' – vadian

回答

0

我不知道为什么String.Index不是_Strideable,但是这段代码没有意义。

  • stringRange是一个Range<String.CharacterView.Index>?,它将测量字形集群。
  • NSRegularExpression预计NSString,它由UTF-16代码单元组成。

充其量,你很幸运,他们是一样的,它只是一个很慢的方法来计算长度。最糟糕的是,它将正则表达式应用于以代码点结尾的子字符串。

你应该做这样的事情:

let range = NSRange(location: 0, length: self.utf16.count) 
相关问题