首次导入后,iOS 10中的UITableview不再刷新

首次导入后,iOS 10中的UITableview不再刷新,ios,uitableview,swift2,ios10,reloaddata,Ios,Uitableview,Swift2,Ios10,Reloaddata,我有一个应用程序,它在第一次启动时导入一个XML文件来创建一个表。这在iOS 9中运行得非常好。在iOS 10中,它仍然正确地导入所有数据,并正确地执行提取,但在我强制退出应用程序并再次打开它之前,表不会显示项目。相反,它只显示xml文件中的第一项。当我点击这个项目时,它实际上会把我带到298个项目的有序列表中的第一个项目(这是一个不同的项目) 链接到视频显示问题: 订单: 1) 应用程序在首次启动时打开,提示用户“导入数据”。分析器 用于导入XML并成功运行XML(我可以打印 每个项目的日志

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

链接到视频显示问题:

订单:

  • 1) 应用程序在首次启动时打开,提示用户“导入数据”。分析器 用于导入XML并成功运行XML(我可以打印 每个项目的日志)
  • 2) 应用程序保存importContext和调用 tableView.reloadData
  • 3) 此时,数据应该在表中。 导航标题包含一个正确的计数(298项)。 但是,表中只有1项,即XML中的第一项 文件
  • 4) 如果我点击那个项目,它会把我带到 298项列表中的第一项(不是列表中的实际项) 表)
  • 5) 有趣的是,如果我执行搜索,1的名称 项目不会更改,但如果我单击它,它会将我带到所需的项目 寻找。如果我搜索其他项目并单击1 表中的项,它会带我到新项(但仍然不会) 更改现有项目的文本)-因此所有298个项目都存在, 只是没有出现在桌子上
我试过打电话

self.viewDidLoad

并在解析完成后使用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,因为这将是一个难题。

你的手机会有问题吗cellForRowAtIndexPath:method中的配置?我遇到了一个类似的问题,我通过移动willDisplayCell:中的代码解决了这个问题。

在iOS 10.0.2中也出现了类似的问题(实际上这个版本开始出现),但是如果我滚动表格,它会加载(有一些小故障,但确实如此)你是说重复数据吗?这就是我要处理的问题now@Multinerd我不太记得了,但我不认为这是重复数据。也许你可以花点时间发布一个你使用的代码的小例子,这会改进你的答案。
dispatch_async(dispatch_get_main_queue()) {
            self.tableView.reloadData()
        }
NSNotificationCenter.defaultCenter().postNotificationName("performFetch", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.test), name: "performFetch", object: nil)