NSRange 和 NSMakeRange 的区别
Difference between NSRange and NSMakeRange
有什么区别吗:
NSRange(location: 0, length: 5)
和:
NSMakeRange(0, 5)
因为Swiftlint
在我使用NSMakeRange
时会抛出警告,但我不知道为什么。
感谢您的帮助:-)
它们之间唯一的区别是
NSRange(location: 0, length: 5)
是 NSRange
的初始值设定项,而
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 代码,则使用第二个 ;)
有什么区别吗:
NSRange(location: 0, length: 5)
和:
NSMakeRange(0, 5)
因为Swiftlint
在我使用NSMakeRange
时会抛出警告,但我不知道为什么。
感谢您的帮助:-)
它们之间唯一的区别是
NSRange(location: 0, length: 5)
是 NSRange
的初始值设定项,而
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 代码,则使用第二个 ;)