我在这个方法上遇到了问题;我得到了一个“致命错误:在展开可选值时意外发现nil”错误。

let filtererArr = structArrayWithNoOptionals.filter({
    return getFloatNumberFromPriceString(removeCommaFromPriceString($0.totalFare!)) >= minPrice && getFloatNumberFromPriceString(removeCommaFromPriceString($0.totalFare!)) <= maxPrice
})

如何修复以防止它崩溃?

最佳答案

如果可能的话,我总是尽量避免强制展开,在您的情况下,您可以使用guard letif 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/

10-12 23:02