2015-03-06 3 views
1

Я только что начал с ReactiveCocoa (и FRP, если на то пошло), и каждый раз, когда я начинаю рефакторинг моего кода, чтобы быть более основанным на RAC, я спрашиваю себя: когда я должен создать свойство или RACSignal?Недвижимость против RACSignal

Например, если у меня есть ViewModel, что делает некоторые проверки, чтобы увидеть, если кнопка может быть включена или нет, я должен сделать это:

dynamic var ready: NSNumber //Bool 

Или это:

var ready: RACSignal 

ответ

3

Если вы хотите, чтобы начать писать больше RAC на основе кода, то я бы высоко рекомендуем использовать RACSignal вместо свойства значение по двум причинам:

  1. RACSignal использование на просмотр моделей возможно, более идиоматический (т. е. более «RAC» способ делать вещи).
  2. Не имея доступа к стоимости имущества в любой момент времени, вы заставите вас думать в терминах FRP, помогая вам быстрее изучить RAC.
+0

Это именно то, что я хочу. Будут следовать вашим советам. Кстати, спасибо за все ваши статьи о RAC, они побудили меня копать глубже в рамках. – dccarmo

3

I предположим, это зависит от вашего варианта использования. Если это непрерывный поток событий, имеет смысл использовать подход RACSignal. если это одно время, вам может понравиться Bool.

+0

Это имеет смысл - я тоже думал, что если свойство/сигнал будет подписано более чем одним объектом, для него имеет смысл быть RACSignal, избегая создания нескольких сигналов. – dccarmo

+0

, вы все равно можете наблюдать свойство без использования явного сигнала: RACObserve(). Будьте осторожны с несколькими подписчиками tho: https://github.com/ReactiveCocoa/ReactiveCocoa/blob/master/Documentation/DesignGuidelines.md#side-effects-occur-for-each-subscription – Peres

+0

Но это не RACObserve просто более простой способ создать RACSignal? https://github.com/ReactiveCocoa/ReactiveCocoa#introduction – dccarmo

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