Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 斯威夫特:如何删除最后一个字符_Ios_Swift_Eureka Forms - Fatal编程技术网

Ios 斯威夫特:如何删除最后一个字符

Ios 斯威夫特:如何删除最后一个字符,ios,swift,eureka-forms,Ios,Swift,Eureka Forms,我正在用eureka表单(costum行)做一个应用程序,问题是当我想用percentageField计算firstValue时,dosen计算不正确,因为当我尝试转换为double时,无法在double ex中转换% firstValue=34 percentageField=9% 问题是“9%”无法转换为double,且值为0 percentageField*firstValue=0,因为无法转换% 代码: func eingabessumeBruttoCalc(forPercentage

我正在用eureka表单(costum行)做一个应用程序,问题是当我想用percentageField计算firstValue时,dosen计算不正确,因为当我尝试转换为double时,无法在double ex中转换% firstValue=34
percentageField=9%
问题是“9%”无法转换为double,且值为0
percentageField*firstValue=0,因为无法转换%

代码:

func eingabessumeBruttoCalc(forPercentage isPercentage: Bool){
        let rowEingabessumeBrutto: KalkulationRow = (formViewController()?.form.rowBy(tag:"eingabessumeBrutto"))!
       let rowRabatt: KalkulationRow = (formViewController()?.form.rowBy(tag:"rabatt"))!
        let rowSkonto: KalkulationRow = (formViewController()?.form.rowBy(tag:"skonto"))!
        let rowDiverse: KalkulationRow = (formViewController()?.form.rowBy(tag:"diverse"))!
        let rowZielBrutto:KalkulationRow = (formViewController()?.form.rowBy(tag:"zielBrutto"))!
        let rowZielNetto:KalkulationRow = (formViewController()?.form.rowBy(tag:"zielNetto"))!
        let rowEingabessumeNetto:KalkulationRow = (formViewController()?.form.rowBy(tag:"result"))!

        let ValueEingabessumeBrutto = Double(rowEingabessumeBrutto.cell.valueField.text ?? "") ?? 00
        let ValueEingabessumeNetto = Double(rowEingabessumeNetto.cell.valueField.text ?? "") ?? 00


        let ValueZielBrutto = Double(rowZielBrutto.cell.percentageField.text ?? "")  ?? 00
        let totalZielBrutto = ValueEingabessumeBrutto * ValueZielBrutto * 0.01
        rowZielBrutto.cell.valueField.text = total.description

        let ValueRabatt = Double(rowRabatt.cell.percentageField.text ?? "")  ?? 00
        let totalRabatt = ValueEingabessumeBrutto * ValueRabatt * 0.01
        rowRabatt.cell.valueField.text = total.description

        let SkontoValue = Double(rowSkonto.cell.percentageField.text ?? "")  ?? 00
        let rowsSkonto = Double(rowEingabessumeBrutto)-Double(rowRabatt)
        let totalSkonto = rowSkonto * SkontoValue * 0.01
        rowSkonto.cell.valueField.text = total.description

        let ValueDiverse = Double(rowDiverse.cell.percentageField.text ?? "")  ?? 00
        let totalDierse = ValueEingabessumeBrutto * ValueDiverse * 0.01
        rowDiverse.cell.valueField.text = total.description

        let ValueZielNetto = Double(rowZielNetto.cell.percentageField.text ?? "")  ?? 00
        let totalDierse = ValueEingabessumeNetto * ValueZielNetto * 0.01
        rowZielNetto.cell.valueField.text = total.description
这就是我所尝试的


我想检查最后一个字符是否为%remove it.

您在重复自己,这导致了大量重复。您应该将类似的部分提取到函数中。此外,swift惯例是对所有本地、实例、静态和类变量使用lowerCamelCase。大写是为类型名称保留的。@Alexander抱歉,我是swift新手,因此我请求帮助。
if let text = textField.text, let lastChar = text.last, lastChar == "%" {
    textField.text = String(text.dropLast())
}
if let text = textField.text, let lastChar = text.last, lastChar == "%" {
    textField.text = String(text.dropLast())
}