gpt4 book ai didi

ios - 以多种方式通过 RACSignal 设置按钮的启用属性?

转载 作者:行者123 更新时间:2023-11-29 10:50:38 27 4
gpt4 key购买 nike

我是 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];

我想弄清楚这两种方式在其内部实现中是否完全相似,或者在某些情况下是否比另一种更好。简单来说,任何人都可以向我解释性能方面的差异吗???

谢谢

最佳答案

如果您查看 RAC 宏并跟踪跟踪,您会发现它最终会调用 -setKeyPath:onObject:RAC 宏是为了方便(语法糖),对性能没有影响。我见过的唯一需要使用 -setKeyPath:onObject: 的情况是当您需要访问由底层订阅创建的一次性对象时。我认为您不会发现很多必须自己处理底层订阅的情况。

关于ios - 以多种方式通过 RACSignal 设置按钮的启用属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20603694/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com