我在这个方法上遇到了问题;我得到了一个“致命错误:在展开可选值时意外发现nil”错误。
let filtererArr = structArrayWithNoOptionals.filter({
return getFloatNumberFromPriceString(removeCommaFromPriceString($0.totalFare!)) >= minPrice && getFloatNumberFromPriceString(removeCommaFromPriceString($0.totalFare!)) <= maxPrice
})
如何修复以防止它崩溃?
最佳答案
如果可能的话,我总是尽量避免强制展开,在您的情况下,您可以使用guard let
或if let
来展开它
把你的代码改成这个
let filtererArr = structArrayWithNoOptionals.filter({
guard let totalFare = $0.totalFare else { return false }
return getFloatNumberFromPriceString(removeCommaFromPriceString(totalFare)) >= minPrice &&
getFloatNumberFromPriceString(removeCommaFromPriceString(totalFare)) <= maxPrice
})
关于swift - 强制展开可选内容会导致Filter崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40543555/