每当静态变量值改变时触发一个函数
Firing a function whenever static variable value changed
我正在开发一个 iPhone 应用程序,使用 swift 通过蓝牙与另一台设备通信。我的问题是,每当变量从 CoreBluetooth 接收到新数据时,我想在另一个 class(更改显示值)上触发一个函数。有人可以帮忙吗!
这可以通过两种方式之一完成,使用 KVO 或 NSNotificationCenter。在这种情况下,最好使用 KVO,因为您只听一个 属性.
魏
执行委托
编写协议
protocol ValueChangedDelegate {
func valueChanged(nValue:Int)
}
并在需要新值的视图控制器中实施该协议
class YourCustomClass: ValueChangedDelegate
{
func valueChanged(nValue:Int) {
print("value changed")
}
}
然后实现一个delegate,将delegate设置为self,并在值变化时调用方法,那么所有实现协议的类都会收到新的值
你可以参考这个
Delegate in Swift-language
- 我更喜欢使用 didSet
以 Swift
的方式做事
示例:
var value: Int?
{
didSet
{
print("I just got changed")
}
}
value = 10
- 在 Swift
中,我们使用 didSet
在 [=15= 发生变化时立即更新 UI ].
- 在上面的示例中,一旦变量 value
设置为 10,它的 didSet
就会被触发。
- 同样你可以用它来处理蓝牙值
我正在开发一个 iPhone 应用程序,使用 swift 通过蓝牙与另一台设备通信。我的问题是,每当变量从 CoreBluetooth 接收到新数据时,我想在另一个 class(更改显示值)上触发一个函数。有人可以帮忙吗!
这可以通过两种方式之一完成,使用 KVO 或 NSNotificationCenter。在这种情况下,最好使用 KVO,因为您只听一个 属性.
魏
执行委托
编写协议
protocol ValueChangedDelegate {
func valueChanged(nValue:Int)
}
并在需要新值的视图控制器中实施该协议
class YourCustomClass: ValueChangedDelegate
{
func valueChanged(nValue:Int) {
print("value changed")
}
}
然后实现一个delegate,将delegate设置为self,并在值变化时调用方法,那么所有实现协议的类都会收到新的值
你可以参考这个 Delegate in Swift-language
- 我更喜欢使用 didSet
Swift
的方式做事
示例:
var value: Int?
{
didSet
{
print("I just got changed")
}
}
value = 10
- 在 Swift
中,我们使用 didSet
在 [=15= 发生变化时立即更新 UI ].
- 在上面的示例中,一旦变量 value
设置为 10,它的 didSet
就会被触发。
- 同样你可以用它来处理蓝牙值