我试图用@AppStorage
来读取/保存一个值,并用它计算一些东西,但我无法调用ContentView
中的函数.例子:
Helper.swift
func powerized(x: Decimal) -> Decimal {
let powerized: Decimal = pow(x, 3) * 6.25
return powerized
}
ContentView.swift
import SwiftUI
struct ContentView: View {
@AppStorage(StorageKeys.sourcePower.rawValue) var sourcePower = 15
var body: some View {
VStack {
Text(powerized(x: sourcePower))
}
}
}
通过这个实现,我得到了Initializer 'init(_:)' requires that 'Decimal' conform to 'StringProtocol'
.
如果我放一个
var myValue: Decimal = powerized(x: sourcePower)
Text(myValue)
我得到一个转换错误Cannot convert value of type 'Int' to expected argument type 'Decimal'
.这可能是因为变量没有定义为Decimal
,但即使做了改变,我也会得到
我对这件事很生气.在不创建一个有ObservableObject
个新类的情况下,是否有任何更改使其工作?AppStorage
已经解决了每次更改时更新UI的问题.