Is there any difference between:
NSRange(location: 0, length: 5)
and:
NSMakeRange(0, 5)
Because Swiftlint throws a warning when I use NSMakeRange, but I don't know why.
Thanks for the Help :-)
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
Main difference is that
NSRange(location: 0, length: 24)
is auto-generated struct init method in Swift and
NSMakeRange(0, 24)
is just a predefined macro that setts location and length
NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
NSRange r;
r.location = loc;
r.length = len;
return r;
}
In general, result is the same, but if you're Swift use first one and if you're writing ObjC code use second ;)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With