私がしようとしているのは、UIPickerviewerから情報を引き出し、それを配列に追加するボタンがありますが、プログラムが実行され、ボタンを押すとクラッシュします。迅速なプログラミングにはまったく新しい...より良い説明が欲しいですか?追加ボタンがクラッシュするのはなぜですか?
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var PickerView: UIPickerView!
@IBOutlet var list: [UILabel]!
@IBAction func add(_ sender: UIButton) {
var shift = true
}
@IBOutlet weak var label: UILabel!
var deviceList = [""]
var shift = false
override func viewDidLoad() {
super.viewDidLoad()
label.text = "Device List"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
let devices = ["Mobile Phone","Microwave","Heater","Fridge","Router","Drill"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return devices[row]
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return devices.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
label.text = devices[row]
if(shift == true){
deviceList.append(label.text!)
print(deviceList)
shift = false
}
}
}
コンソールのエラーテキスト/出力を表示してください。 –
あなたには完全なエラーメッセージが表示され、クラッシュする行を教えてください。さもなければ私達はあなたを助けることができない –
変数** shift **の再宣言が無効です。メインクラスとuibutton関数の両方で宣言しています。 @IBActionの前に** var shift = false **を移動し、関数の本文でキーワード** var **を削除してください –