gpt4 book ai didi

swift - NSRange.toRange() 有什么意义?

转载 作者:行者123 更新时间:2023-11-28 15:24:06 26 4
gpt4 key购买 nike

Apple's Swift documentation for String.UTF16View说:

Use the NSRange type’s toRange method to convert [an NSRange] instance to an optional range of Int values.

NSRange 类型的 toRange 方法有什么意义?而且,为什么它会返回 nil

为什么不直接使用 NSRangelocation 来获取 lowerBoundNSMaxRange(_:) 来得到 upperBound?

例如给定

let nsrange = NSRange(location: 3, length: 12)

代替

let r = nsrange.toRange()

为什么不做

let lowerBound = nsrange.location
let upperBound = NSMaxRange(nsrange)

最佳答案

the Swift source code for the NSRange type’s toRange method implementation .

public func toRange() -> Range<Int>? {
if location == NSNotFound { return nil }
return location..<(location+length)
}

如您所料,该方法使用 NSRangelocation 获取 lowerBoundlocation+length ,相当于NSMaxRange(_:),得到upperBound。如果 NSRangelocationNSNotFound,它返回 nil

注意:从 Swift 4 开始,此方法已被弃用并重命名为 Range.init(_:)

关于swift - NSRange.toRange() 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45517988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com