The only difference between them is that
NSRange(location: 0, length: 5)
is an initializer for NSRange while
NSMakeRange(0, 5)
is a function which creates a new NSRange instance (by using the same initializer inside most likely) and actually is redundant in Swift. Swift has simply inherited it from Objective-C. I would stick to the former