重新加载UITableView显示错误?
我处于一个奇怪的境地。 当我尝试重新加载tableview使用reloadData()
它显示以下错误。 。 。
致命错误:意外地发现零,而解包一个可选值
这是检索输出的Web服务方法
func didRecieveOutput(results:NSArray) { if results.count != 0 { userOrders = results as! NSMutableArray dispatch_async(dispatch_get_main_queue(), { () -> Void in self.orderList.reloadData() }) } }
编辑:我已经检查了我的连接以及委托和数据源。 它适用于静态数据。 但是当我调用reloadData()时,问题就来了。 我有静态数据以及dynamic(服务器数据)相同的问题。
这个错误可能有n个原因。 一些常见原因是:
- 您的
UITableView
@IBOutlet
未正确连接。 - 缺less代表/数据源也可能是一个原因。
- 将数据提供给表视图的模型正在
reloadData()
调用之前进行修改。 - 在使用某些对象之前,您没有正确地检查
nil
。 - 发布服务器响应后,您正在创build一个新的实例,而不是使用已经加载的实例。
- 另一个原因可能是如果你的视图结构是这样的:UITableViewController —> UIView —> UITableView,然后'tableView'去零,你需要调用
[[self.view.subviews objectAtIndex:0] reloadData];
。 参考: 苹果论坛 。
你可以尝试以上的情况,但是对于我们来说,指出你需要共享你的表视图渲染代码和stream的错误。
解决scheme发现! 🙂
感谢Abhinav给我的线程,尽pipe他的build议失败了。
var array : NSArray = self.view.subviews array.objectAtIndex(0).reloadData()
我也得到了同样的错误。 所以我尝试了这个工作
var array : NSArray = self.view.subviews array.objectAtIndex(2).reloadData()
在这个数组中,我的tableview是在第二个索引。 所以我的build议是检查数组,首先确定tableview对象,并使用索引。