Подскажите, пожалуйста, каким образом можно реализовать tableView.reloadData() каждую минуту? и вредно ли это вообще … мне нужно, чтобы если приложение открыто, то чтобы обновились ячейки.
[решено] tableView.reloadData() автоматически
недавно только кто-то интересовался этим вопросом тут на форуме. поищите, там был ответ от администратора.
Да, вот здесь Обновление данных в TableView каждые 15 секунд. Но судя по всему это что-то другое + у меня не заработало ((
Нашла ошибку с самим обновлением, работает каждые 10 секунд, но вот сам tableView.reloadData() не обновляет ((
class ViewController: UIViewController {
var myTimer: Timer!
override func viewDidLoad() {
super.viewDidLoad()
self.myTimer = Timer(timeInterval: 60.0, target: self, selector: #selector(refresh), userInfo: nil, repeats: true)
RunLoop.main.add(self.myTimer, forMode: .default)
}
@objc
func refresh() {
tableView.reloadData()
}
}
Разобралась, у меня обновления не подгружались на основании которых вносились изменения в твью. Вы, как всегда, навели на толковую мысль) спасибо!!!
Вопрос, а это не сильно плохо, если каждую минуту сперва запрос к корДате, на наличие изменений, а потом релоад на основании этих изменений, если они есть?
Я вот думаю, это же работает только когда приложение открыто, тогда даже каждую секунду не тяжело будет запросы обрабатывать, а когда приложение свернуто, оно же не будет работать, так ведь?
по тестам ни оперативную память, ни процессор вообще не нагружает, даже если каждую секунду запросы делать…
если каждую секунду делать обновления, юзер не сможет таблицей нормально пользоваться
учитесь думать о юзере, ему должно быть все понятно и легко
в первую очередь нужно думать о UX (user expirience), вы же делаете приложение для пользователей
А чем NSFetchResultController не устроивает? Я так понял, что работа идет с CoreData, фетч ризалт сам следит за обновлениями данных и подгружает их в таблицу. А вы тут таймер повесили. Не стоит изобретать велосипед, когда эпл вам предоставила прекрасный инструмент для этого
О, спасибо, буду разбираться, у меня просто опыта меньше месяца, поэтому я не всё догоняю ещё и не знаю где что есть и как) Спасибо