在< Int>预期参数类型为“Int”SwiftUI时绑定

kqlmhetl  于 2023-01-12  发布在  Swift
关注(0)|答案(1)|浏览(156)

我正在学习UserDefaults存储,当我尝试应用另一个类中的代码时收到警告:Cannot convert value of type 'Binding<Int>' to expected argument type 'Int'
这是我的代码:

@ObservedObject var eatTracker = TimeToEatTrackerViewModel()

var body: some View {
    VStack(spacing: 30) {
        Button(action: {
            self.$eatTracker.currentMeal += 1
            print(self.$eatTracker.currentMeal)
        }){
            Text("Who's next?")
        }

    }
}

另一个类具有ViewModel:

class TimeToEatTrackerViewModel: ObservableObject {

@Published var currentMeal: Int = UserDefaults.standard.integer(forKey: "CurrentMeal") {
    didSet {
        UserDefaults.standard.set(self.currentMeal, forKey: "CurrentMeal")
    }
}
}

如果两者都是Int,为什么会出现该错误?
多谢

yhuiod9q

yhuiod9q1#

执行以下操作:

self.eatTracker.currentMeal += 1
print(String(self.eatTracker.currentMeal))

相关问题