Ios 静态特性观测器
与往常一样,这通常有效:Ios 静态特性观测器,ios,swift,properties,static,Ios,Swift,Properties,Static,与往常一样,这通常有效: var someVar = 1{ didSet{ callSomeMethod() } } 但是,当我将var设置为静态时,我就不能再调用该方法了 static var someVar = 1{ didSet{ callSomeMethod() // -> gives error } } 错误如下所示。在静态变量上不可能有属性观察器吗?如果有的话,还有其他选择吗?谁来帮忙 初始设置 我想你是说这个
var someVar = 1{
didSet{
callSomeMethod()
}
}
但是,当我将var设置为静态时,我就不能再调用该方法了
static var someVar = 1{
didSet{
callSomeMethod() // -> gives error
}
}
错误如下所示。在静态变量上不可能有属性观察器吗?如果有的话,还有其他选择吗?谁来帮忙
初始设置 我想你是说这个测试:
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
1
Test
2
1
Test
2
1
Test
2
静态变量无法调用实例函数
我添加了一个static,然后我还需要将函数设置为static:
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
1
Test
2
1
Test
2
1
Test
2
创建实例以访问实例功能
初始化类以访问函数调用(不推荐):
我得到的结果是:
1
Test
2
1
Test
2
1
Test
2
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
1
Test
2
1
Test
2
1
Test
2
可以添加定义someVar和callSomeMethod的位置吗?在同一个班?