在分隔符Swift3中实现一个String

时间:2017-05-23 06:18:46

标签: xcode string swift3 separator let

我有一个问题。我在使用货币的应用程序上工作,我想在let applcation中自动输入正确的货币符号来修剪整个字符串。首先,我将此代码剪掉:

let firstPriceTrimmed = firstPrice.components(separatedBy: "€").flatMap { String($0.trimmingCharacters(in: .whitespaces)) }.last

现在我的代码看起来像是:

switch sideIDS {
    case 6, 8, 9, 10, 12:
        var current = "€"
        let firstPriceTrimmedNew = firstPriceTrimmed?.components(separatedBy: String(current)) { String($0.trimmingCharacters(in: .whitespaces)) }.first
    case 7:
        var current = "£"
        let firstPriceTrimmedNew = firstPriceTrimmed?.components(separatedBy: String(current)) { String($0.trimmingCharacters(in: .whitespaces)) }.last
    case 11:
        var current = "₹"
        let firstPriceTrimmedNew = firstPriceTrimmed?.components(separatedBy: String(current)) { String($0.trimmingCharacters(in: .whitespaces)) }.last
    default:
        XCTFail()
    }

但它没有用。 XCode将消息“无法调用'组件'与参数列表类型'(separatedBy:String?,(_) - > _)'。怎么回事?我不明白XCode是什么意思......

1 个答案:

答案 0 :(得分:1)

您尚未在.flapMap components(separatedBy:)的{​​{1}}内添加cases或任何其他结果switch

let firstPriceTrimmedNew: String

switch sideIDS {
case 6, 8, 9, 10, 12:
    let current = "€"
    firstPriceTrimmedNew = firstPriceTrimmed?.components(separatedBy: current).flatMap { String($0.trimmingCharacters(in: .whitespaces)) }.first
case 7:
    let current = "£"
    firstPriceTrimmedNew = firstPriceTrimmed?.components(separatedBy: current).flatMap { String($0.trimmingCharacters(in: .whitespaces)) }.last
case 11:
    let current = "₹"
    firstPriceTrimmedNew = firstPriceTrimmed?.components(separatedBy: current).flatMap { String($0.trimmingCharacters(in: .whitespaces)) }.last
default:
    XCTFail()
}