我正在尝试获取文本的范围,我这样做了:
let telRange = Range(start: tfTelephone.text!.startIndex, end: tfTelephone.text!.endIndex.advancedBy(2))
在此之后我试图比较:
if (telRange == "08")
但是我收到了一个错误:
二元运算符'=='不能应用于类型的操作数 'Range'(又名'Range')和'String'
答案 0 :(得分:0)
你应该做这样的事情:
if (tfTelephone.text![telRange] == "08") {
// ...
}
然而,在此之前,你必须解决这个问题:
let telRange = Range(
start: tfTelephone.text!.startIndex,
end: tfTelephone.text!.endIndex.advancedBy(2) // <- This will fail. Use negative
) // number, and make sure to stay
// within the length of the input
// string still.
答案 1 :(得分:0)
尝试这样的事情:
let yourString = tfTelephone.text
let telRange = Range(start: yourString!.startIndex, end: yourString!.endIndex.advancedBy(-2)) //It's important to use only negative numbers!
let stringToCompare = yourString!.substringWithRange(telRange)
现在你可以比较两个字符串
if (stringToCompare == "08")
答案 2 :(得分:0)
首先,不要强制打开,而是使用if-let
。其次,您无法比较Range
和String
,您很可能想要比较该范围的子字符串。第三,你不能从endIndex
前进。
let telRange: String
if let text = tfTelephone.text {
telRange = text[text.startIndex...text.endIndex.advancedBy(-2)]
} else {
telRange = ""
}
上面的内容应该有效,您可以调整索引和advanceBy
参数以符合您的期望。