有什么区别:
NSRange(location: 0, length: 5)
和:
NSMakeRange(0, 5)
因为Swiftlint
我使用时会发出警告NSMakeRange
,但我不知道为什么。
谢谢您的帮助 :-)
它们之间的唯一区别是
NSRange(location: 0, length: 5)
是NSRange
while的初始化器
NSMakeRange(0, 5)
是一个创建新NSRange
实例的函数(很可能通过在内部使用相同的初始化程序),实际上在Swift
. Swift
只是从Objective-C
. 我会坚持前者
主要区别在于
NSRange(location: 0, length: 24)
是 Swift 中自动生成的 struct init 方法和
NSMakeRange(0, 24)
只是一个预定义的宏,用于设置位置和长度
NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
NSRange r;
r.location = loc;
r.length = len;
return r;
}
一般来说,结果是相同的,但如果你是 Swift 使用第一个,如果你正在编写 ObjC 代码,使用第二个;)