在Swift中的UITableView

在Swift中的UITableView,第1张

概述我正在努力弄清楚这段代码段出了什么问题。这将工作在Objective C,但在Swift这只是崩溃的方法的第一行。它不给出错误消息,只有Bad_Instruction。 func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { 我正在努力弄清楚这段代码段出了什么问题。这将工作在Objective C,但在Swift这只是崩溃的方法的第一行。它不给出错误消息,只有Bad_Instruction。
func tableVIEw(tableVIEw: UItableVIEw!,cellForRowAtIndexPath indexPath: NSIndexPath!) -> UItableVIEwCell!  {        var cell : UItableVIEwCell = tableVIEw.dequeueReusableCellWithIDentifIEr("Cell") as UItableVIEwCell        if (cell == nil) {            cell = UItableVIEwCell(style: UItableVIEwCellStyle.Value1,reuseIDentifIEr: "Cell")        }        cell.textLabel.text = "TEXT"        cell.detailTextLabel.text = "DETAIL TEXT"        return cell    }
另请参见 matt’s answer,其中包含解决方案的第二部分

让我们找到一个解决方案,而不创建自定义子类或nib

真正的问题是,Swift区分可以为空的对象(nil)和不能为空的对象。如果您没有为您的标识符注册一个nib,那么dequeueReusableCellWithIDentifIEr可以返回nil。

这意味着我们必须将变量声明为可选:

var cell : UItableVIEwCell?

我们必须使用as?不是

//variable type is inferredvar cell = tableVIEw.dequeueReusableCellWithIDentifIEr("CELL") as? UItableVIEwCellif cell == nil {    cell = UItableVIEwCell(style: UItableVIEwCellStyle.Value1,reuseIDentifIEr: "CELL")}// we kNow that cell is not empty Now so we use ! to force unwrapPing but you Could also define cell as// let cell = (tableVIEw.dequeue... as? UItableVIEwCell) ?? UItableVIEwCell(style: ...)cell!.textLabel.text = "Baking Soda"cell!.detailTextLabel.text = "1/2 cup"cell!.textLabel.text = "Hello World"return cell
总结

以上是内存溢出为你收集整理的在Swift中的UITableView全部内容,希望文章能够帮你解决在Swift中的UITableView所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存