Slide 17
Slide 17 text
! Powerful Binding !
& example of combineLatest:reduce:
RACSignal *loginShouldBeEnabledSignal = [RACSignal
combineLatest:@[
self.usernameTextField.rac_textSignal,
self.passwordTextField.rac_textSignal,
RACObserve(LoginManager.sharedManager, loggingIn)
]
reduce: (id) ^(NSString *username, NSString *password, NSNumber *loggingIn) {
BOOL shouldBeEnabled=
(username.length > 0 && password.length > 0 && !loggingIn.boolValue);
return @(shouldBeEnabled);
}
];
// Bind signal to `enabled` property on loginButton
RAC(self.loginButton, enabled) = loginShouldBeEnabledSignal;