【问题标题】:Swift : EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)斯威夫特:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
【发布时间】:2016-06-16 21:41:47
【问题描述】:

您好,我是 swift 新手,需要一些帮助

每次我运行我的代码时,我的应用程序都会崩溃并吐出“上述错误”

谁能告诉我我需要做什么或需要在我的代码中替换什么?

import UIKit

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource{


    @IBOutlet weak var picker: UIPickerView!
    var employeeNames = ["John","Jane","Jack","James"]


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.


        self.picker.delegate = self
        self.picker.dataSource = self
    }

    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return employeeNames.count
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return employeeNames [row]
    }

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        print(employeeNames[row])
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }   
}

【问题讨论】:

    标签: xcode swift


    【解决方案1】:

    您的代码绝对没问题,所以唯一的选择是您没有连接您的 pickerView 插座。 Ctrl 在情节提要中单击您的选择器视图,然后查看您的出口“选择器”是否出现。如果没有,则 ctrl 从 pickerView 拖动到您的插座以连接它。

    【讨论】:

    • 我已经这样做了,pickerView 似乎已经连接,你知道我可能会收到此错误的任何其他原因吗?有没有办法深入挖掘并专门找到错误,我的问题将试图理解错误
    • 这个错误通常意味着有一个变量或隐式解包的可选项在尝试访问它时为 nil。这就是为什么我认为选择器出口需要连接,因为这是唯一可以发现为零的东西。
    • 是否有多个插座连接到pickerView?有时会这样做。也可能将您的视图控制器重命名为 PickerViewController 或其他内容,然后将您的故事板 ViewController 设置为该类(我认为这不是问题,但值得一试)
    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 2016-02-19
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    相关资源
    最近更新 更多