嘿伙计们我刚开始使用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
}
答案 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。