gpt4 book ai didi

ios - pickerView 上的 Swift fatal error

转载 作者:行者123 更新时间:2023-11-29 01:33:08 25 4
gpt4 key购买 nike

我的程序有问题。我知道问题出在哪里,但不确定如何解决。这是一个“超出范围的错误”。每当我单击分段控制按钮时,它都会切换 pickerView 的数组,但当我快到数组末尾时崩溃。我尝试使用 reloadAllComponents 但它没有显示任何内容。

SecondViewController 类:UIViewController、UIPickerViewDataSource、UIPickerViewDelegate{

@IBOutlet weak var segmentControl: UISegmentedControl!
@IBOutlet weak var tempPickerView: UIPickerView!
@IBOutlet weak var converterLabel: UILabel!


@IBAction func switcherConverter(sender: AnyObject) {
switch(self.segmentControl.selectedSegmentIndex){
case 0:
break;
case 1:
break;
default:
break;
}
}


var pickerData = Array(-129...134)
var pickerData2 = Array(-90...60)



override func viewDidLoad() {
super.viewDidLoad()

tempPickerView.dataSource = self
tempPickerView.delegate = self
[self.tempPickerView .reloadAllComponents()]
}

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if(segmentControl.selectedSegmentIndex == 0){
return pickerData.count
}else{
return pickerData2.count
}
}

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

if(segmentControl.selectedSegmentIndex == 0){
return "\(pickerData[row]) °F"
}
else {
pickerView.reloadAllComponents()
return "\(pickerData2[row]) °C"

}

}


func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if(segmentControl.selectedSegmentIndex == 0){
let celsius = (Double(pickerData[row]-32) / 1.8)

let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.NoStyle

let formattedCelsiusString = formatter.stringFromNumber(celsius)!


converterLabel.text = "\(formattedCelsiusString) °C"

}

else {



let fahrenheit = ((Double(pickerData2[row]) * 1.8) + 32 )

let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.NoStyle

let formattedFahrenheitString = formatter.stringFromNumber(fahrenheit)!

converterLabel.text! = "\(formattedFahrenheitString) °F"


}

}

最佳答案

尝试在 switcherConverter 中调用 tempPickerView.reloadAllComponents()

关于ios - pickerView 上的 Swift fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33242901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com