我試圖從UserDefaults中獲取一個Bool,其鍵值取決于一個產品的nameID。
我試著這樣做:
import SwiftUI
struct ProductDetail: View {
var product。GumroadProduct[/span]。
@AppStorage("LOCAL_LIBRARY_PRESENCE_PRODUCTID_(product.id)") var isLocal: Bool = false
var body。some View {
Text("ProductView"/span>)
}
}
無論如何,Swift都會拋出這樣的錯誤:
。
不能在屬性初始化器中使用實體成員'product'。 屬性初始化器在'self'可用之前運行
我明白為什么 Swift 會拋出這個錯誤,但我不知道如何繞過它。 有什么解決辦法嗎?
預先感謝你。 Alberto
uj5u.com熱心網友回復:
這里有一個針對你的代碼快照的解決方案--提供明確的初始化器,并根據輸入來實體化其中的屬性:
struct ProductDetail。View {
@AppStorage private var isLocal: Bool var isLocal.
private var product。GumroadProduct var product.
init(product: GumroadProduct) {
self.product = product
self._isLocal = AppStorage(wrappedValue: false, "LOCAL_LIBRARY_PRESENCE_PRODUCTID_(product.id)")
}
var body。some View {
Text("ProductView"/span>)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/307288.html
標籤:
