2016-09-18 78 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

相關問題