xcode - swift 错误 : Cannot find an initializer for type 'Double' that accepts an argument list of type '(String)'

标签 xcode swift compiler-errors syntax-error

我正在尝试从标记为“temperatureTextField”的文本字段中获取数据并将其分配给“t”,这是一个 Double。理想情况下,用户应该向 temperatureTextField 添加一个数字值。

这是我的方法:

@IBOutlet weak var temperatureTextField: UITextField!

@IBAction func convert(sender: AnyObject) {
    let t = Double(temperatureTextField.text!)
    let tempM = TemperatureModel(temp: t!)
    temperatureTextField.text = String(tempM.toCelsius())
}

红色感叹号来自“let t = Double(temperatureTex...)”这一行

最佳答案

您可能使用的是 Xcode 6,所以 Swift 1.2,但是 Double 的字符串初始值设定项仅在 Swift 2 (Xcode 7) 中可用。

你总是可以使用 NSString 的 doubleValue 属性:

let t = (temperatureTextField.text! as NSString).doubleValue

但我建议尽快使用 Xcode 7 和 Swift 2。

关于xcode - swift 错误 : Cannot find an initializer for type 'Double' that accepts an argument list of type '(String)' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766739/

相关文章:

iOS-将图像制作为视频时,CVPixelBufferCreate 内存无法正确释放

ios - SwiftUI MVVM : child view model re-initialized when parent view updated

指向类内部成员函数的 C++ 函数指针

java - 事件处理程序有编译错误 : "local variables referenced from a lambda expression must be final"

javac 错误不可转换类型 java.lang.Double

xcode - 无法评论选择

objective-c - 无法加载 nib 文件 : MainWindowController. xib,正在退出

ios - Xcode Swift Ios 应用程序 : Adding delay

ios - UILabel 高度取决于文本

ios - 对象 swift 3.0 上的 NSLayoutConstraints