Difference between NSRange and NSMakeRange

我的梦境 提交于 2019-11-29 13:07:46

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 ;)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!