I have a UIButton
added to a view. My view also has three text box viz. username, password and confirmPassword. Based on the legitimate content of these text box, I need to enable my signUp button.
Here is my code snippet :-
UIButton *signUp = [[UIButton alloc]initWithFrame:CGRectMake(10, 100, 50, 20)];
signUp.backgroundColor = [UIColor greenColor];
signUp.enabled = NO ;
[self.view addSubview:signUp];
RACSignal *formValid = [RACSignal
combineLatest:@[
username.rac_textSignal,
password.rac_textSignal,
confirmPassword.rac_textSignal
]
reduce:^(NSString *username, NSString *password, NSString *passwordVerification) {
return @([username length] > 0 && [password length] > 8 && [password isEqual:passwordVerification]);
}];
RAC(signUp.enabled) = formValid; //Error is here
In the last line, I'm getting two errors:-
I am new to Reactive Cocoa. Please ignore the mistakes.
Use RAC(signUp, enabled)
instead of RAC(signUp.enabled)
. The RAC
macro takes at least two arguments, the object and the keypath you are binding.
The RAC()
macro takes two arguments at a minimum, the object that's the target and a valid keypath on that object.
Like so:
RAC(signUp, enabled) = formValid;
You're passing it signUp.enabled
, which is a single item, and happens to be a BOOL
, not an object. After the macro is expanded, the BOOL
is passed to a method that expects an object argument, so the compiler complains:
[[RACSubscriptingAssignmentTrampoline alloc] initWithTarget:signUp.enabled nilValue:<#garbage#>][@keypath(signUp.enabled, nil)]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With