Swift NSRange.toRange()有什么意义?
说: 使用NSRange类型的toRange方法将[NSRange]实例转换为可选的Int值范围 NSRange类型的toRange方法有什么意义?为什么它会返回零呢 为什么不直接使用NSRange的位置来获得lowerBound,而使用NSMaxRange:来获得上限 例如,给定Swift NSRange.toRange()有什么意义?,swift,range,nsrange,Swift,Range,Nsrange,说: 使用NSRange类型的toRange方法将[NSRange]实例转换为可选的Int值范围 NSRange类型的toRange方法有什么意义?为什么它会返回零呢 为什么不直接使用NSRange的位置来获得lowerBound,而使用NSMaxRange:来获得上限 例如,给定 let nsrange = NSRange(location: 3, length: 12) 而不是 let r = nsrange.toRange() 为什么不直接做呢 let lowerBound = nsr
let nsrange = NSRange(location: 3, length: 12)
而不是
let r = nsrange.toRange()
为什么不直接做呢
let lowerBound = nsrange.location
let upperBound = NSMaxRange(nsrange)
看
正如您所怀疑的,该方法使用NSRange的位置来获取下限,使用location+length(相当于NSMaxRange_u1;:)来获取上限。如果未找到NSRange的位置,则返回nil
注意:从Swift 4开始,此方法已被弃用,并已重命名为Range.init:。FYI,这是一个死链接。
public func toRange() -> Range<Int>? {
if location == NSNotFound { return nil }
return location..<(location+length)
}