Swift 3中Range对象上的NSRange.location的等效值是多少?

时间:2017-01-06 16:22:55

标签: swift3 range nsrange

有人可以告诉我一个Range的哪个属性是NSRange的location属性的等价属性。

特别是我对如何从Swift 2.3迁移以下代码行感兴趣 - > Swift 3.0

if myRange.location != NSNotFound { ... }

myRange仍然是Range属性,因此编译器告诉我正确: 类型范围的值没有成员位置

检查空房产是否足够?

if !myRange.isEmpty { ... }

提前致谢

1 个答案:

答案 0 :(得分:2)

就像评论所说的那样,你将得到一个零范围,而不是返回NSNotFound。

尽管.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"
}