NEW: Master Swift design patterns with my latest book! >>

How to convert an NSRange to a Swift string index

Written by Paul Hudson    @twostraws

Swift strings have changed in every release since the language was first announced, but even after so much change its older counterpart, NSRange, still appears in many UIKit APIs.

Fortunately, Swift 4 introduced a simple way to convert any NSRange into a regular Swift Range. For example, say you had the following string and range:

let input = "Hello, world"
let range = NSMakeRange(0, 10)

To make that into a Swift Range instance you just need this single line of code:

let swiftRange = Range(range, in: input)

Available from iOS 7.0

Did this solution work for you? Please pass it on!

Other people are reading…

About the Swift Knowledge Base

This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.

Get the ultimate experience

The Swift Power Pack includes my first six books for one low price, helping you jumpstart a new career in iOS development – check it out!

Click here to visit the Hacking with Swift store >>