2016-09-18 51 views
2

我有一个应用程序在首次启动时导入XML文件以创建表。这在iOS 9中工作得非常好。在iOS 10中,它仍然正确导入所有数据,并正确执行提取,但表格不会显示项目,直到我强制退出应用程序并再次打开。相反,它只是显示xml文件中的第一项。当我点击该项目时,它实际上将我带到298个项目(这是不同的项目)的有序列表中的第一个项目。UITableview不再在初次导入后在iOS 10中刷新

链接到视频显示问题:reloading table issues

订单:

  • 1)应用上首次推出打开,提示用户 “导入数据”。解析器 用于导入XML并成功运行XML(我可以打印 每个项目的日志)。
  • 2)App保存importContext并调用 tableView.reloadData
  • 3)此时,数据应该在表中。 导航标题包含计数,这是正确的(298项)。 但是,该表中只有1个项目,即XML 文件中的第一个项目。
  • 4)如果我点击该项目,它将带我到298项目列表中的第一项(不是 表中的项目)的 。 5)有趣的是,如果我执行搜索,则1 项目的名称不会改变,但是如果我点击它,它会将我带到搜索项目I 。如果我搜索不同的物品并点击表格中的1 物品,它会将我带到新物品(但仍不会 更改现有物品的文本) - 因此,所有298物品都存在, 只是未显示在桌子里。

我已经打过电话

self.viewDidLoad 

self.tableView.reloadData() 

dispatch_async(dispatch_get_main_queue()) { 
      self.tableView.reloadData() 
     } 

,并呼吁使用NSNotificationCenter所有三种以上功能后的分析已完成与

NSNotificationCenter.defaultCenter().postNotificationName("performFetch", object: nil) 
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.test), name: "performFetch", object: nil) 

但是实际上并没有重置tableView中的一个项目(这恰好是xml文件中的第一项。同样,所有数据都在那里,只是看不见。

如果我强制退出应用程序并打开它,所有数据都在那里,可见并且工作得很好。有没有不同的/新的方式来强制在iOS 10中刷新tableview?再次,这个功能在ios 9中运行良好,没有代码改变,但在ios 10中失败。我还没有升级到Swift 3.0,因为它会很痛苦。

+1

遇到与iOS 10.0类似的问题。2(它实际上开始与这个版本发生),但如果我滚动表,它会加载(有一些小故障,但它确实)。 – dccarmo

+0

@dccarmo by glitch你的意思是重复数据吗?多数民众赞成在即时处理现在的问题 – Multinerd

+0

@Multinerd我不记得,但我不认为这是重复数据。 – dccarmo

回答

0

你在cellForRowAtIndexPath中做你的单元配置:方法?我有一个类似的问题,我解决了它在willDisplayCell中移动代码:.

+1

也许你可以花时间发布你使用的代码的一个小例子,它会改善你的答案。 – miltonb

相关问题