無法理解如何對待各類仿製藥,以及如何與圖書館與未定義的類型使用的參數:「無法將類型‘T’......的價值」,在仿製藥
func cellWith<T>(value: T) -> String { // I expect Int, Double or String
// type value as argument
let fm = NSNumberFormatter() // Double type argument will be
fm.numberStyle = .CurrencyStyle // processed like "currency"
if value.self is Double { // In case value have type "Double",
// like 20_000.00
return(fm.stringFromNumber(value)) // I expect return $20,000.00
^~~~~
// ERROR: Cannot convert value of type 'T' to expected argument type 'NSNumber'
} else {
return("bla-bla-bla")
}
}
您可能想使用'Any'而不是通用方法。無論如何,通過這樣做,如果讓doubleValue = value爲?雙{...使用}'。請參閱https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TypeCasting.html – Kevin
它適用於'return(fm.stringFromNumber(NSNumber(double:doubleValue))!)'。我不知道,但爲什麼我應該在最後解開字符串值? –
因爲'stringFromNumber(_ :)'不能保證返回一個非零值,但是你的方法是。 – avismara