Swiftui 如何在访问时增加已发布的变量

Swiftui 如何在访问时增加已发布的变量,swiftui,Swiftui,我正在尝试在我的应用程序中设置某种全局计数器。 最好的方法是什么 我有下面的代码可以工作,但它非常难看,我想在访问var时增加它,这样我就不必调用函数了 我尝试使用get和set,但使用属性包装器是不可能的 class GlobalDisplayInfo: ObservableObject { @Published var nextAvailableInt : Int = 0 func getNextAvailableInt() -> Int { nex

我正在尝试在我的应用程序中设置某种全局计数器。 最好的方法是什么

我有下面的代码可以工作,但它非常难看,我想在访问var时增加它,这样我就不必调用函数了

我尝试使用get和set,但使用属性包装器是不可能的

class GlobalDisplayInfo: ObservableObject {

    @Published var nextAvailableInt : Int = 0

    func getNextAvailableInt() -> Int {
        nextAvailableInt += 1
        return self.nextAvailableInt
    }
}

目前尚不清楚其用法,但您似乎需要以下内容

class GlobalDisplayInfo: ObservableObject {

    private var _nextAvailableInt = 0
    var nextAvailableInt : Int {
        _nextAvailableInt += 1
        return _nextAvailableInt
    }
}

您想要实现的目标是不可能的,因为这与
已发布的
的工作方式背道而驰

假设您在两个位置访问已发布的var:

当第一个访问变量时,它将增加变量,这将需要第二个使用此变量的位置刷新(再次访问此变量),这将需要再次增加变量,这将需要另一个使用此变量访问的位置,它将继续-我想你明白了


你的问题听起来很像设计问题,我建议你重新审视一下。另外,我认为如果你只告诉我们你想要实现什么(不使用任何编码语言,只是简单地解释一下你想要什么),那么可能会有一个答案。

我也不确定你的意思。如果访问了var2,您是否必须使用vars并希望增加var1?进一步试验,您完全正确。更不用说,您无法真正控制调用已发布的var的时间。