我是 Reactive Cocoa 的新手。我正在尝试通过信号设置按钮启用属性。我有以下代码片段可以正常工作:
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] > 3 && [password isEqual:passwordVerification]);
}];
RAC(signUp,enabled) = formValid;
但是,我还遇到了另一段也可以正常工作的代码:
[[RACSignal
combineLatest:@[username.rac_textSignal, password.rac_textSignal,confirmPassword.rac_textSignal]
reduce:^(NSString *firstName, NSString *passwd, NSString *confirmPass){
return @( firstName.length > 0 && passwd.length > 0 && confirmPass.length > 0);
}] setKeyPath:@"enabled" onObject:resetButton];
我想弄清楚这两种方式在内部实现上是否完全相似,或者在某些情况下是否比其他方式更好。简单来说,谁能解释我在性能方面的差异???
谢谢你