uitableview – 启动应用程序xCode时的EXC_BAD_INSTRUCTION断点

uitableview – 启动应用程序xCode时的EXC_BAD_INSTRUCTION断点,第1张

概述我的应用程序中有一个tableview,当我启动应用程序时,它崩溃了以下功能. func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { // Configure the cell... let cellId: NSStri 我的应用程序中有一个tablevIEw,当我启动应用程序时,它崩溃了以下功能.

func tableVIEw(tableVIEw: UItableVIEw!,cellForRowAtIndexPath indexPath: NSIndexPath!) -> UItableVIEwCell! {    // Configure the cell...    let cellID: Nsstring = "Cell"    var cell: UItableVIEwCell = tableVIEw.dequeueReusableCellWithIDentifIEr(cellID) as UItableVIEwCell}

它在var cell的行上崩溃了

它给出以下错误:

我无法弄清楚我的代码有什么问题.

整个功能:

func tableVIEw(tableVIEw: UItableVIEw!,cellForRowAtIndexPath indexPath: NSIndexPath!) -> UItableVIEwCell! {    // Configure the cell...    let cellID: Nsstring = "Cell"    var cell: UItableVIEwCell = tableVIEw.dequeueReusableCellWithIDentifIEr(cellID) as UItableVIEwCell    let data: NSManagedobject = myList[ip.row] as NSManagedobject    cell.textLabel.text = data.valueForKeyPath("voornaam") as String    cell.detailTextLabel.text = data.valueForKeyPath("achternaam") as String    return cell}

编辑:
我现在得到的:(仍然给出相同的错误)

func tableVIEw(tableVIEw: UItableVIEw!,cellForRowAtIndexPath indexPath: NSIndexPath!) -> UItableVIEwCell? {    // Configure the cell...    let cellID: Nsstring = "Cell"    var cell: UItableVIEwCell? = tableVIEw?.dequeueReusableCellWithIDentifIEr(cellID) as? UItableVIEwCell    if cell == nil {        cell = UItableVIEwCell(style: .SubTitle,reuseIDentifIEr: cellID)    }    let data: NSManagedobject = myList[indexPath.row] as NSManagedobject    cell!.textLabel.text = data.valueForKey("voornaam") as String    cell!.detailTextLabel.text = data.valueForKey("achternaam") as String    //cell!.textLabel.text = "Hoi"    return cell}
解决方法 发生这种情况是因为as运算符被定义为将对象强制转换为给定类型,并在转换失败时崩溃.在这种情况下,第一次调用时,对dequeue的调用返回nil.你需要使用as?运算符,它将尝试将给定对象强制转换为类型,并仅在转换成功时返回具有值的可选项:

var cell: UItableVIEwCell? = tableVIEw.dequeueReusableCellWithIDentifIEr(cellID) as? UItableVIEwCellif cell == nil {  cell = UItableVIEwCell(style: .SubTitle,reuseIDentifIEr: cellID)}...

因为单元格现在是可选值,请使用单元格!当你想调用它上面的方法来强制解包其中的UItableVIEwCell.

此外,您的代码还有第二个问题:它从未创建过新的单元格. dequeue将在第一次在表视图中调用时返回nil.您需要在我的代码示例中实例化一个新的UItableVIEwCell,然后从cellFor …方法返回它.然后,表视图将保存单元格并在将来调用时将其返回到队列.

总结

以上是内存溢出为你收集整理的uitableview – 启动应用程序xCode时的EXC_BAD_INSTRUCTION断点全部内容,希望文章能够帮你解决uitableview – 启动应用程序xCode时的EXC_BAD_INSTRUCTION断点所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1023411.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存