NSRange是个使用频率比较高的对象,尤其是在设置富文本(AttributedString)的地方。自带的 rangeOfString 就可以查找某字符所在字符串中的位置。但如果要获取多次出现的位置信息就需要另辟蹊径了。如下代码实现了,获取多次出现的位置信息的方法,参考如下:
/// 获取字符出现的位置信息(支持多次位置获取)
/// - Parameter string: 原始文本
/// - Parameter inString: 需要查找的字符
private func rangeOfString(string:NSString,
andInString inString:String) -> [NSRange] {
var arrRange = [NSRange]()
var _fullText = string
var rang:NSRange = _fullText.range(of: inString)
while rang.location != NSNotFound {
var location:Int = 0
if arrRange.count > 0 {
if arrRange.last!.location + arrRange.last!.length <= string.length {
location = arrRange.last!.location + arrRange.last!.length
}
}
_fullText = NSString.init(string: _fullT