Лучший подход для сохранения изображений в Swift? - PullRequest
0 голосов
/ 01 марта 2020

Я сейчас занимаюсь разработкой приложения для iOS. Приложение предназначено для создания учетной записи, а затем может пригласить нескольких друзей в группу.

После того, как люди присоединились к группе, вы можете отправить тип «информации». Эта информация будет отправляться примерно 5 раз в день для каждой группы.

Информация будет отображаться в виде «истории», другими словами, в виде таблицы. Они будут отображаться в ячейке следующим образом:

  1. Изображение участника.
  2. Тип текста
  3. Дата со временем.

В данный момент при отправке формы URL-адрес хранилища Firebase отправляется в Firebase Realtime, где база данных сохраняет тип данных следующим образом: imageUrl, text и date.

Когда я затем загружаю данные из Firebase, все изображения загружаются снова, что, как я заметил, очень сильно перегружает Firebase Storage. Я превысил дневной лимит менее 1 часа.

let memberImagePath = dataArray[indexPath.row].memberImage
cell.memberImage.downloaded(from: memberImagePath)

Поэтому мне интересно, как я могу это улучшить? Как сделать так, чтобы изображения загружались только один раз, а затем сохранялись другим способом? Частично для повышения производительности приложения, но также не для того, чтобы превышать лимит.

Я в основном хочу, чтобы изображения были в правильном месте для ВСЕХ членов группы (не только для меня).

Потому что, когда вы в группе, каждый член группы может видеть историю, которая включает в себя изображения, тексты и даты. Так или иначе, мне нужно скачать изображения один раз и сохранить их в другом месте.

Обратите внимание, что каждое использование должно быть обновлено. Например, если в группу добавлен новый участник, его / ее изображение должно быть обновлено на всех устройствах в группе. Так что сохранение данных в UserDefaults может быть не вариант, верно?

Надеюсь, вы понимаете, что я ищу. Спасибо.

1 Ответ

0 голосов
/ 01 марта 2020

Вы можете хранить данные в каталоге документов. Проверьте FileManager класс. Просто проверьте, существует ли файл на устройстве, если нет, загрузите его. Но если изображения могут быть обновлены, вам понадобится какая-то система контроля версий, чтобы убедиться, что на каждом устройстве установлен самый последний образ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...