Где постоянно хранить пользовательские данные при обновлении приложений (iOS)?

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

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

Asperi 23.04.2022 08:51

Используйте каталоги приложений для документов или библиотек, а не кэш или временные файлы.

Ptit Xav 23.04.2022 16:27
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
2
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Самый простой способ сохранения данных при перезапуске приложения — использование UserDefaults. В вашем случае вы можете хранить пользовательские типы данных в ключе UserDefaults следующим образом:

  1. Инициализировать объект по умолчанию
let defaults = UserDefaults.standard
  1. Создайте пользовательский тип данных для ваших данных (должен быть Codable)
struct Bookmark: Codable {
    let name: String
    let url: String
}
struct Bookmarks: Codable {
    let bookmarks: [Bookmark]
}
  1. Сохраните данные следующим образом
// data is of type Bookmarks here
if let encodedData = try? JSONEncoder().encode(data) {
    defaults.set(encodedData, forKey: "bookmarks")
}
  1. Получить данные позже
if let savedData = defaults.object(forKey: "bookmarks") as? Data {
    if let savedBookmarks = try? JSONDecoder().decode(Bookmarks.self, from: savedData) {
        print("Saved user: \(savedBookmarks)")
    }
}

Подробнее здесь и здесь

Другие вопросы по теме