У меня есть приложение, которое импортирует XML-файл при первом запуске для создания таблицы. Это отлично работает в iOS 9. В iOS 10 он по-прежнему импортирует все данные правильно и правильно выполняет выборку, но таблица не отображает элементы, пока я не заставлю приложение покинуть приложение и не открою его снова. Вместо этого он просто показывает первый элемент из xml-файла. Когда я нажимаю на элемент, он фактически переносит меня в первый элемент в упорядоченном списке из 298 элементов (это другой элемент).UITableview Больше не обновляется в iOS 10 после первоначального импорта
Ссылка на видео показывая вопрос: reloading table issues
Заказ:
- 1) App открывает на начальном запуске, предложит пользователю "импорт данных". Parser используется для импорта XML и успешно проходит через XML (я могу распечатать журнал каждого элемента).
- 2) Приложение сохраняет 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)
Но ничто фактически не сбрасывает один элемент в таблицеView (который, случается, является первым элементом в XML-файле. Опять же, все данные есть, просто невидимы.
Если я заставляю покинуть приложение и открывать его обратно, все данные там и видны и работают нормально. Есть ли другой/новый способ принудительного обновления таблицы в iOS 10? Опять же, эта функция отлично работала в ios 9, код не менялся, но в ios 10 он терпит неудачу. Я не обновился до Swift 3.0, потому что это будет боль.
Наличие аналогичной проблемы с iOS 10.0.2 (это фактически начало происходить с этой версией), но если я прокручу таблицу, она загрузится (с некоторыми глюками, но это так). – dccarmo
@dccarmo от глюка, вы имеете в виду повторяющиеся данные? вот проблема, с которой я столкнулся сейчас – Multinerd
@Multinerd Я не совсем помню, но я не думаю, что это повторялось. – dccarmo