我正在设计一个需要翻译成 2 种语言的应用程序。从服务器请求翻译。
我创建了一个结构 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并将翻译数组设置为等于服务器响应数组。
接下来,我想知道这两个选项中哪个更好:
选项1:将其传递给rootController并通过构造函数依赖注入将其传播到应用程序中的任何地方
选项 2:将其保存在UserDefaults中并在每个 ViewController 中检索并使用它(如果存在)