tableView项目上的Thread1:EXC_BAD_instruction(code = exc_i386_invop,subcode = 0 * 0)

时间:2016-10-24 18:50:16

标签: ios swift

嘿伙计们我刚开始使用Swift而且我遇到了问题。我确实给标签贴了标签,我实现了UIViewController,UiTableViewDelegate和UITableViewDataSource。我确实在tableView上添加了Delegate和dataSource的故事板,但我不断收到此错误

  

在tableView项目上的Thread1:EXC_BAD_instruction(code = exc_i386_invop,subcode = 0 * 0)   on let lblName:UILabel = cell.viewWithTag(102)as!的UILabel

      func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("myCell")!

    //remplissage cell

    switch indexPath.section {
    case 0:
        let lblName:UILabel = cell.viewWithTag(102) as! UILabel
        lblName.text = "30/09/2200"

        let lblDate:UILabel = cell.viewWithTag(103) as! UILabel
        lblDate.text = "30/09/2200"

        //let imgProfile:UIImageView = cell.viewWithTag(103) as! UIImageView
      //  imgProfile.image = UIImage(named: "pexel")

    cell.textLabel?.text = "Firas"
    case 1:
        cell.textLabel?.text = "sqdqsd"
    default:
        cell.textLabel?.text = "Nothing"
    }



    return cell


}

1 个答案:

答案 0 :(得分:0)

class FirasCell: UITableViewCell {
    @IBOutlet weak var name: UILabel!
    @IBOutlet weak var date: UILabel!
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    // This will be an an option, as dequeue returns an optional
    // This also assumes that all your cells are FirasCells
        let cell = tableView.dequeueReusableCell(withIdentifier: "myCell") as?     FirasCell

    // Sure you aren't thinking of rows here? An array would be rows, an array of arrays would be sections with rows in them
    switch indexPath.section {
    case 0:
        cell?.name.text = "30/09/2200"
        cell?.date.text = "30/09/2200"

        cell?.textLabel?.text = "Firas"
    case 1:
        cell?.textLabel?.text = "Second Cell"
    default:
        cell?.textLabel?.text = "The rest of them"
    }

    // Quick and dirty check for this example as you are not allowed to return nil
    return cell ?? UITableViewCell()
}

有可能找出标签解决方案,但它不太可靠。一个快速简便的解决方案是创建自己的单元格(请参阅上面的FirasCell)并确保故事板中表格中的单元格属于该类型。然后将两个标签添加为插座。

现在您的单元格可以是FirasCell,您可以在将它们出列后直接设置文本。我已避免在示例代码中使用!,因为它会彻底崩溃您的应用,因此如果您非常确定,请仅使用!

最棘手的部分可能是建立网点,但一旦你知道它是如何容易的。那里有很多教程可以解释它比我更好,但简短的版本就是你要打开Connections检查器(带有箭头的圆圈到右侧实用工具栏中的右侧选项卡)当您选择了单元格,然后单击从插座旁边的圆圈拖动到UILabel。