在分隔符 Swift3 中实现一个字符串

Implement a String in a separator Swift3

我有一个问题。我在一个带有货币的应用程序上工作,我想在 let applcation 中自动将正确的货币符号放入 trim 完整的字符串。首先,我剪掉了这段代码:

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

现在我的代码看起来像:

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

但是没有用。 XCode 放置消息“无法使用类型为‘(separatedBy: String?, (_) -> _)’的参数列表调用 'components'。怎么了?我不明白什么 XCode 被通缉...

您还没有在 switch 的所有 cases 中添加 .flapMap 或结果为 components(separatedBy:) 的任何其他闭包。

let firstPriceTrimmedNew: String

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