swift – tableView.cellForRowAtIndexPath(indexPath)返回nil

swift – tableView.cellForRowAtIndexPath(indexPath)返回nil,第1张

概述我有一个循环通过我的表视图的验证函数,问题是它在某个时刻返回nil单元格. for var section = 0; section < self.tableView.numberOfSections(); ++section { for var row = 0; row < self.tableView.numberOfRowsInSection(section); ++row { 我有一个循环通过我的表视图的验证函数,问题是它在某个时刻返回nil单元格.
for var section = 0; section < self.tableVIEw.numberOfSections(); ++section {    for var row = 0; row < self.tableVIEw.numberOfRowsInSection(section); ++row {        var indexPath = NSIndexPath(forRow: row,inSection: section)        if section > 0 {            let cell = tableVIEw.cellForRowAtIndexPath(indexPath) as! MyCell            // cell is nil when self.tableVIEw.numberOfRowsInSection(section) return 3 for row 1 and 2            // ... Other stuff        }    }}

我不确定我在这里做错了什么,我尝试双重检查indexPath行和部分它们很好,numberOfRowsInSection()返回3但行1和2返回一个零单元格…我可以看到我的UI中也有3个单元格.

有谁知道我做错了什么?

我的函数在一些tableVIEw.reloadData()和vIEwDIDLoad之后调用,是否有可能在我的函数执行之前tablevIEw没有完成重载事件虽然我没有在dispatch_async中调用它?

希望得到答案.
预先感谢

—————————答案———————- –

补充说明:

cellForRowAtIndexPath只返回可见单元格,验证应该在数据模型中完成.当细胞构建在

overrIDe func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell {

它应该根据验证状态自行更改.

如文档中所述,cellForRowAtIndexPath返回:

An object representing a cell of the table,or nil if the cell is not visible or indexPath is out of range.

因此,除非您的表格完全显示,否则有一些屏幕外行,该方法返回nil.

它为非可见单元返回nil的原因是因为它们不存在 – 表重用相同的单元格以最小化内存使用 – 否则将无法管理具有大量行的表.

总结

以上是内存溢出为你收集整理的swift – tableView.cellForRowAtIndexPath(indexPath)返回nil全部内容,希望文章能够帮你解决swift – tableView.cellForRowAtIndexPath(indexPath)返回nil所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存