在分隔符中实现字符串Swift3

问题描述:

我有一个问题。我使用货币工作,我想将正确的货币符号自动放入应用程序中以修剪整个字符串。首先,我有这样的代码剪断:在分隔符中实现字符串Swift3

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

现在我的代码IST样子:

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将消息“Can not invoke'components'用类型为'(separatedBy:String ?,(_) - > _)'的参数列表'。'什么错误?我不明白XCode是什么意思...

你还没有加入.flapMapswitch所有cases内的任何其他封闭与components(separatedBy:)结果。

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() 
} 
+0

非常感谢它的作品。但现在我还有一个问题,我的问题是现在,我不能在案例之外获得新的信息,'firstPriceTrimmedNew'变量超出了案件的范围,是否有可能获得案件以外的信息?'return firstPriceTrimmedNew'无效...... – Saintz

+0

@Saintz检查编辑的答案 –

+0

你有解决方案,我得到的情况以外的信息? – Saintz