Verifique se string é um valor duplo válido no Swift

No Swift, como verificar se uma string é um valor duplo válido? Eu tenho usado a seguinte extensão deessa questão (mas como flutuante), mas se o valor não puder ser convertido, ele simplesmente retornará "0":

extension String {
    var doubleValue:Double? {
        return (self as NSString).doubleValue
    }
}

Idealmente, gostaria que retornassenil para que possa ser pego em umif-let, igual a:

if let i = str.doubleValue {
    object.price = i
} else {
    // Tell user the value is invalid
}

questionAnswers(4)

yourAnswerToTheQuestion