将部分文本与String进行比较

时间:2016-01-05 08:06:13

标签: ios swift range

我正在尝试获取文本的范围,我这样做了:

    let telRange = Range(start: tfTelephone.text!.startIndex, end: tfTelephone.text!.endIndex.advancedBy(2))

在此之后我试图比较:

if (telRange == "08")

但是我收到了一个错误:

  

二元运算符'=='不能应用于类型的操作数   'Range'(又名'Range')和'String'

3 个答案:

答案 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。其次,您无法比较RangeString,您很可能想要比较该范围的子字符串。第三,你不能从endIndex前进。

let telRange: String
if let text = tfTelephone.text {
    telRange = text[text.startIndex...text.endIndex.advancedBy(-2)]
} else {
    telRange = ""
}

上面的内容应该有效,您可以调整索引和advanceBy参数以符合您的期望。