每当静态变量值改变时触发函数

时间:2015-10-15 06:22:59

标签: xcode swift function core-bluetooth

我正在开发一个使用swift通过蓝牙与其他设备通信的iPhone应用程序。我的问题是,当变量从CoreBluetooth接收新数据时,我想在另一个类上激活一个函数(更改显示值)。有人可以帮忙!

3 个答案:

答案 0 :(得分:2)

这可以通过两种方式之一完成,使用KVO或NSNotificationCenter。在这种情况下,最好选择KVO,因为你只是在听一个属性。

答案 1 :(得分:2)

- 我希望使用Swift

didSet的方式完成这些工作

示例:

var value: Int?
{
    didSet
    {
        print("I just got changed")
    }
}

value = 10

- Swift我们didSet使用modelvalue发生更改后立即更新用户界面。

- 在上面的示例中,只要变量didSet设置为10,就会触发其describe 'GET #show' do before(:each) do @os = FactoryGirl.create :deployer_os get :os end it 'returns all operating systems' do os_response = json_response expect(os_response).to eql @os end it { should respond_with 200 } end

- 同样,您可以使用它来处理蓝牙值

答案 2 :(得分:1)

实施委托以执行它

编写协议

protocol ValueChangedDelegate {
  func valueChanged(nValue:Int)
}

并在View控制器中实现您希望新值

的协议
class YourCustomClass: ValueChangedDelegate 
{
  func valueChanged(nValue:Int) {
    print("value changed")
  }
}

然后实现委托并将委托设置为self并在值更改时调用方法,然后实现协议的所有类将接收新值

你可以参考这个 Delegate in Swift-language