我正在开发一个使用swift通过蓝牙与其他设备通信的iPhone应用程序。我的问题是,当变量从CoreBluetooth接收新数据时,我想在另一个类上激活一个函数(更改显示值)。有人可以帮忙!
答案 0 :(得分:2)
这可以通过两种方式之一完成,使用KVO或NSNotificationCenter。在这种情况下,最好选择KVO,因为你只是在听一个属性。
答案 1 :(得分:2)
- 我希望使用Swift
didSet
的方式完成这些工作
示例:强>
var value: Int?
{
didSet
{
print("I just got changed")
}
}
value = 10
- 在Swift
我们didSet
使用model
在value
发生更改后立即更新用户界面。
- 在上面的示例中,只要变量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