Swift中有'didGet'这样的东西吗?访问变量时运行的方法?

Che*_*ong 8 swift

基本上,我想这样做:

var counter : Int = 0;
private var _data : String;
var data : String {
    get { counter += 1; return _data; }
    set { _data = newValue; }
}
Run Code Online (Sandbox Code Playgroud)

然后我想像这样减少它:

var counter : Int = 0;
var data : String {
    get { counter += 1; return data; }
    set { data = newValue; }
}
Run Code Online (Sandbox Code Playgroud)

但我注意到这不可能做到.(错误:在其初始值内使用的变量).所以我想像这样简化它:

var counter : Int = 0;
var data : String {
    didGet { counter += 1; }
}
Run Code Online (Sandbox Code Playgroud)

但是没有这样的事情didGet.有没有办法在不添加新的其他变量的情况下执行此操作?我需要在counter += 1每次data访问时运行,而不添加新变量作为存储.谢谢.

Vla*_*bir 8

,没有添加新变量就没有办法做到这一点。

如果您在get变量的方法中返回相同的变量,您将创建无限循环