Глобальная переменная приложения Swift в UserDefaults - PullRequest
0 голосов
/ 05 ноября 2019

Я разрабатываю приложение, которое требует перевода на 2 языка. Переводы запрашиваются с сервера.

Я создал struct TranslationService, которая хранит все переводы и имеет функцию, которая возвращает переведенную фразу на основе кода

struct TranslationService: Codable {
var translations: [Translation]

func getTranslation(by code: String) -> String? {
    let result = translations.filter { $0.string == code }

    return result.first?.translation
}

То есть при запуске в AppDelegate Я делаю запрос к серверу, чтобы получить переводы, и когда запрос выполнен, я создаю TranslationService и устанавливаю массив translations равныммассив ответов сервера.

Далее мне интересно, какой из двух вариантов лучше:

Опция 1: Передайте его в rootController и распространить его повсюду в приложении с помощью внедрения зависимости конструктора

Вариант 2: Сохранить его в UserDefaults и извлечь его в каждом ViewController и использовать, если он есть

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