如何返回一个零自定义 UITableViewCell

Posted

技术标签:

【中文标题】如何返回一个零自定义 UITableViewCell【英文标题】:How to return a nil custom UITableViewCell 【发布时间】:2016-01-23 01:53:51 【问题描述】:

在我的cellForRowAtIndexPath 方法中,它从服务器获取数据。如果数据的值之一是false,我想更改一些全局对象的一些值并跳过实现此单元格,但是当我尝试返回nil 时,应用程序崩溃了。我将 Parse.com PFQueryTableViewController 用于UITableViewController,因此通过设置方式,它会获取所有数据,然后通过调用cellForRowAtIndexPath 进行处理。我无法查询对所述值正确的对象,因为当它是 false 时,我需要更改程序中的其他内容。

Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:]
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView (<UITableView: 0x7e30e400; frame = (0 95; 320 424); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x7b2a94b0>; layer = <CALayer: 0x7b2a8af0>; contentOffset: 0, 0; contentSize: 320, 1690>) failed to obtain a cell from its dataSource (<_UIFilteredDataSource: 0x7b26d5a0>)'

【问题讨论】:

【参考方案1】:

您不能为 cellForRowAtIndexPath 返回 nil,这会使您的应用程序崩溃。 您可以只返回一个没有任何元素的单元格,例如: return [UITableViewCell new];

好吧,在我看来,您最好重新排列您的数据源数组,只需将“真”取出到一个新数组中即可。使用新数组将解决您的问题。

【讨论】:

以上是关于如何返回一个零自定义 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章

如何访问 NSIndexPath 部分值?

UILabel 错误释放到 UITableViewCell

如何设置特定UITableViewCell的背景颜色

UITextField becomeFirstResponder 不显示文本光标

自定义 UIView(.xib) 在 UITableViewCell 中添加为子视图后自动更改框架

如何向 UINavigationController 添加一个在任何子视图上方可见的视图