我正在尝试构建温度转换器应用程序.我使用分段控制来为用户选择如何计算温度(摄氏度到华氏度以及从华氏度到摄氏度).我还创建了一个按钮,用于转换分段控件中所选方法输入的温度.
这是我在控制器中创建的功能:
@IBAction func convertTemp(sender: AnyObject) {
let t = Double(tempTextfield.text!)
let type = converterType.selectedSegmentIndex
let tempM = tempModel(temp:t!)
if type == 0 {
finalTemp.text = String(tempM.celsius2Fahrenheit())
}
if type == 1 {
finalTemp.text = String(tempM.fahrenheit2Celsius())
}
}
这就是我的模型中的内容.
class tempModel {
var temp: Double
init (temp:Double){
self.temp = temp
}
func celsius2Fahrenheit()->Double{
return 32 + temp * 5 / 9;
}
func fahrenheit2Celsius()->Double{
return (temp - 32) * 5/9;
}
}
我不确定我做错了什么.除了按钮(转换)之外的所有东西都以我希望它工作的方式工作.我似乎无法找到错误.
我不知道这是否有帮助,但我收到此错误:
2015-11-16 18:07:02.496 TemperatureConverer[5201:194432] Can’t find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 4131139949_Portrait_iPhone-Simple-Pad_Default
2015-11-16 18:07:04.827 TemperatureConverer[5201:194432] Can’t find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 4131139949_Portrait_iPhone-Simple-Pad_Default
(lldb)
最佳答案 我发现了一个临时修复.我的问题是我的viewController和我的tempModel之间的通信.当我删除tempModel类并将方法直接插入控制器中的函数时,我的代码工作.
所以在我的控制器中,我有这个..
@IBAction func convertTemp(sender: AnyObject) {
let temp = Double(tempTextfield.text!)!
var newTemp = ""
if converterType.selectedSegmentIndex == 0{
newTemp = String(format: "%.2f Farenheit", 32+temp*5/9)
}
if converterType.selectedSegmentIndex == 1{
newTemp = String(format: "%.2f Celsius",(temp-32)*5/9)
}
finalTemp.text = newTemp
}
我知道最终我必须学习如何将我的控制器和模型链接在一起.但直到我弄明白,这是一个解决我的问题的解决方案.