#ios #iphone #core-data
#iOS #iPhone #основные данные
Вопрос:
У меня есть приложение, которое использует CoreData framework для сохранения и извлечения данных для приложения. Теперь, когда пользователь входит в приложение, список городов извлекается с сервера на основе разбивки на страницы частями по 30, когда пользователь прокручивает таблицу вниз, а затем они сохраняются в базе данных в приложении, теперь, если пользователь извлек 3000 записей и сохранил их в базе данных приложения, как будут обновляться старые записи поскольку в приложении нет механизма синхронизации, поскольку я извлекаю больше записей из sever после, например, от 3000 до 3030.
Также, когда пользователь выходит из системы, на целевом экране удаляется информация о пользователе, какой город понравился пользователю или пользователь посетил. Теперь, когда пользователь снова входит в систему, я должен отметить все его любимые города и посещенные города в уже сохраненном списке.
Если кто-нибудь, пожалуйста, может что-то предложить, возможно, я сделал неправильную реализацию. Я совершенно не знаю, как подойти.
Комментарии:
1. Извините, но вопрос неясен. Каким образом вы пытаетесь обновить данные и когда именно это обновление должно произойти?
2. Привет @sudo спасибо за ответ, когда мы снова открываем приложение, я извлекаю данные с сервера порциями размером от 0 до 30, поэтому обновляются существующие записи до 30 элементов, но мне нужно обновлять и другие записи, когда я прокручиваю таблицу вниз, но как мне указать логику, поскольку там 1000 записейпоказано в табличном представлении, но мне нужно обновить от 30 до 60 и от 60 до 90 в дальнейшем, надеюсь, я понял это.
3. Поправьте меня, если я ошибаюсь, но похоже, что вы пытаетесь обновить записи неправильным способом. Обновление записей — это всего лишь вопрос их изменения в вашем хранилище основных данных, что, я полагаю, вы знаете, как это сделать, и указание вашему табличному представлению (в котором должен быть реализованный вами источник данных) выполнять обновления. Он будет автоматически обрабатывать обновления по мере прокрутки пользователем; вам не нужно добавлять специальную логику. В этой документации Apple есть хорошие примеры: developer.apple.com/library/content/documentation/Cocoa /…
4. Также возможно, что у вас есть незначительная ошибка в вашем коде. Не вдаваясь в подробности, вы сможете найти его, сравнив с примерами Apple, или вы даже можете переписать свой код на их основе. В начале также немного об использовании NSFetchedResultsController. Если вы еще этого не делаете, я смиренно рекомендую вам это сделать. Удачи!
5. @sudo вы правы, что прокрутка обновит данные, но это должно быть так часто, поскольку прокрутка будет обновлять данные снова и снова в TableView. Обычно я получаю больше данных в scrollViewDidScroll (следующий фрагмент) и обновляю с помощью FRC. Я добавил логику обновления в scrollViewDidEndDecelerating на основе видимого индекса для обновления существующих элементов, и обновление актуально после 1 часа обновления. Пожалуйста, поправьте меня, если я ошибаюсь в своей логике.