Nano Hash - криптовалюты, майнинг, программирование

Хранение данных пользователя и ядра приложения по-разному

В моем приложении IOS я храню два типа данных в CoreData. Один тип создается пользователем, другой — предварительно сгенерированной базой данных. В настоящее время все это находится в том же магазине, который входит в папку документов. Но это не очень хороший подход, поэтому я разделю на 2 отдельных магазина.

Есть две проблемы:

  1. Предварительно созданная база данных не должна создавать резервную копию iCloud.
  2. Когда предоставляется обновление приложения, пользовательские данные должны быть сохранены, но предварительно созданная база данных должна быть перезаписана. (Предварительно созданная база данных будет иметь обновленное содержимое, даже если модель данных не изменилась.)

Для проблемы 1 я могу либо поместить предварительно созданное хранилище базы данных в каталог кеша, либо оставить его в каталоге документов, помеченном для пропуска резервного копирования. Поскольку каталог кеша можно очистить в любое время, лучше использовать папку документов без резервного копирования. Однако решает ли это проблему 2? То есть, будет ли предварительно созданная база данных перезаписана после обновления?

Если нет, то есть ли другие решения?

17.03.2015

Ответы:


1

Вы можете сохранить предварительно созданную базу данных рейтинга в папке документов и пометить ее для пропуска резервного копирования в iCloud. Однако вам нужно написать некоторый скрипт для перезаписи данных. Или при обновлении вы можете полностью удалить предварительно созданный магазин и создать его снова с обновленными данными.

17.03.2015
  • Спасибо @sanjana. Вы имеете в виду скрипт, как на themainthread.com/blog? /2014/03/replaceing-a-core-data-store.html ? Как программа узнает, что она запущена в первый раз после обновления? 17.03.2015
  • Как программа узнает, что она запущена в первый раз после обновления? Я скопировал версию пакета в [NSUserDefaults standardUserDefaults]. 28.03.2015
  • Может хранить еще один логический флаг в userdefault isFirstTime, устанавливать/сбрасывать флаг в соответствии с текущей и ранее сохраненной версией пакета. 29.03.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..