gpt4 book ai didi

ios - 静态属性观察者

转载 作者:搜寻专家 更新时间:2023-11-01 06:35:50 25 4
gpt4 key购买 nike

像往常一样,这通常有效:

var someVar = 1{
didSet{
callSomeMethod()
}
}

但是,当我将 var 设置为静态时,我就不能再调用该方法了。

static var someVar = 1{
didSet{
callSomeMethod() // -> gives error
}
}

错误如下所示。静态变量不能有属性观察器吗?如果是这样,还有其他选择吗?有人请帮忙。

enter image description here

最佳答案

初始设置

我想你的意思是这个测试:

class Test {

var someVar = 1{
didSet{
callSomeMethod()
}
}

func callSomeMethod(){
print("Test")
}
}

var test = Test()

print(test.someVar)
test.someVar = 2
print(test.someVar)

我得到结果:

1
Test
2

静态变量不能调用实例函数

我添加了一个静态,然后我也需要将函数设置为静态:

class Test {

static var someVar = 1{
didSet{
callSomeMethod()
}
}

//this need to be static too
static func callSomeMethod(){
print("Test")
}

}

var test = Test()

print(Test.someVar)
Test.someVar = 2
print(Test.someVar)

我得到结果:

1
Test
2

创建实例访问实例功能

初始化类以访问函数调用(不推荐):

class Test {

static var someVar = 1{
didSet{
// init the class to get a instance function
Test().callSomeMethod()
}
}

func callSomeMethod(){
print("Test")
}

}

var test = Test()

print(Test.someVar)
Test.someVar = 2
print(Test.someVar)

我得到结果:

1
Test
2

函数外

当函数在外部时,它也可以工作

class Test {

static var someVar = 1{
didSet{
callSomeMethod()
}
}

}

//this need to be outside
func callSomeMethod(){
print("Test")
}

var test = Test()

print(Test.someVar)
Test.someVar = 2
print(Test.someVar)

我得到结果:

1
Test
2

关于ios - 静态属性观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41775483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com