Swift 3 内范围对象上 NSRange.location 的等效值是多少?

What is the equivalent value for NSRange.location on the Range Object within Swift 3?

有没有人能给我一个提示,Range 的 属性 等价于 属性 到 NSRange 的位置 属性。

我特别感兴趣的是如何从 Swift 2.3 -> Swift 3.0

迁移以下代码行
if myRange.location != NSNotFound { ... }

myRange 仍然是一个范围 属性 所以编译器告诉我正确的: 类型范围的值没有成员位置

检查空属性是否足够?

if !myRange.isEmpty { ... }

提前致谢

如评论所说,您不会返回 NSNotFound,而是得到一个 nil 范围。

虽然 .location 已替换为 .lowerBound 和 .upperBound,但要回答您的问题。

let s = "The yellow dog is nice"
if let range = s.range(of: "dog")
{
    print(s[range.lowerBound...]) //prints "dog is nice"
    print(s[range.upperBound...]) //prints " is nice"
    print(s[range.lowerBound..<range.upperBound]) //prints "dog"
}