我正在设计一个需要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中检索它,并在存在的情况下使用它