Skip to content

Instantly share code, notes, and snippets.

@eienf
Last active August 12, 2017 12:55
Show Gist options
  • Save eienf/1aa70fa59d7c11ce0ae6645aa55382e7 to your computer and use it in GitHub Desktop.
Save eienf/1aa70fa59d7c11ce0ae6645aa55382e7 to your computer and use it in GitHub Desktop.
extension String {
func rangeFromNSRange(nsrange:NSRange) -> Range<String.Index> {
let string = self
let startIndex = string.startIndex.advancedBy(nsrange.location)
let endIndex = startIndex.advancedBy(nsrange.length)
let range = Range(start:startIndex, end:endIndex)
return range
}
func NSRangeFromRange(range:Range<String.Index>) -> NSRange {
let location = self.startIndex.distanceTo(range.startIndex)
var length = 0
var index = range.startIndex
while index < range.endIndex {
length += 1
index = index.successor()
}
return NSMakeRange(location, length)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment