有人可以告诉我一个Range的哪个属性是NSRange的location属性的等价属性。
特别是我对如何从Swift 2.3迁移以下代码行感兴趣 - > Swift 3.0
if myRange.location != NSNotFound { ... }
myRange仍然是Range属性,因此编译器告诉我正确: 类型范围的值没有成员位置
检查空房产是否足够?
if !myRange.isEmpty { ... }
提前致谢
答案 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"
}