在辅助函数中访问SwiftUI @AppStorage和@SceneStorage值的正确方法是什么?

问题描述

由于@AppStorage@Scenestorage属性包装器仅在视图中可用,这意味着我无法在辅助函数中指定它们。

例如,一个辅助函数convertFromKelvin(degreesK: Double) -> Double可能想查询是否返回华氏度或摄氏温度,如在与视图@AppStorage("tempScale") var tempScale = "C"关联的变量中定义的那样。

为此采取“旧方法”并引用NSUserDefaults.standard.string(forKey: "tempScale")似乎是合乎逻辑的,但这是“正确的”吗?我该如何引用@Scenestorage变量?在View中调用函数传递值是否明智?或者传递对场景的引用,如果是这样,我该怎么做?

在值全局或半全局存储在Scene上下文中时,像这样传递任何值似乎是违反直觉的。

请注意,我的用例要求helper函数可用于多个不相关的视图。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)