2015-10-15 2 views
0

Я разрабатываю приложения для iPhone, используя быстрое общение с другим устройством через Bluetooth. Мой вопрос заключается в том, что я хочу запустить функцию другого класса (изменить отображаемое значение) всякий раз, когда переменная получает новые данные от CoreBluetooth. Может кто-то помогает!Запуск функции при изменении значения статической переменной

ответ

1

Вэй

Реализация делегата для выполнения его

написать протокол

protocol ValueChangedDelegate { 
    func valueChanged(nValue:Int) 
} 

и реализовать этот протокол в View Controller, где вы хотите новое значение

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

затем реализовать делегат и назначить делегата себе и вызвать метод при изменении значения, то все классы, которые реализуют протокол получит новое значение

Вы можете передать этот Delegate in Swift-language

+0

Да, я пытался добавить в методе делегата, но функция не увольняет. –

+0

Я не могу понять, какую часть я пропустил –

2

Это может быть выполнено одним из двух способов: либо с использованием KVO, либо с помощью NSNotificationCenter. В этом случае лучше всего пойти с KVO, так как вы слушаете только одно свойство.

2

- Я предпочитаю делать вещи Swift способом, используя didSet

Пример:

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

value = 10 

- В Swift мы используем didSet для обновления пользовательского интерфейса, как только происходит изменение в model.

- В приведенном выше примере, как только переменная value установлен в 10, его didSet обжигают.

- Точно так же вы можете использовать эту функцию для обработки Значения Bluetooth

Смежные вопросы