美文网首页
Reactive​Cocoa 使用范例

Reactive​Cocoa 使用范例

作者: b9bd2a64f47e | 来源:发表于2016-07-31 10:57 被阅读155次

    本文的内容

    因为最近要把项目代码从MVC迁移到MVVM,而且项目中使用的RAC,自己也抽出时间来学习RAC的用法,因为看了许多博客,而且每篇博客所介绍的使用例子也不一样,侧重点也不一样,所以决定把那些例子整理到这里。

    Reactive​Cocoa 和我们经常使用的编程模式很不一样,看了许多介绍RAC的实现原理的文章博客之类,还是一头雾水,然并软,唯有这些例子这么直观,更容易引入到项目中。


    例子1

    • 将一系列条件汇成一个 BOOL 值,其他对象使用这个值

    使用RAC的代码

    RACSignal *formValid = [RACSignal combineLatest:@[ 
    self.username.rac_textSignal, self.emailField.rac_textSignal, 
    self.passwordField.rac_textSignal, 
    self.passwordVerificationField.rac_textSignal ]
     reduce:^(NSString *username, NSString *email, NSString *password, NSString *passwordVerification) {
     return @([username length] > 0 && [email length] > 0 && [password length] > 8 && [password isEqual:passwordVerification]); 
    }];
    RAC(self.createButton.enabled) = formValid;
    

    使用传统代码

     - (BOOL)isFormValid { 
    return [self.usernameField.text length] > 0 
    && [self.emailField.text length] > 0 
    && [self.passwordField.text length] > 0 
    && [self.passwordField.text isEqual:self.passwordVerificationField.text];
    }
    #pragma mark - UITextFieldDelegate
    -(BOOL)textField(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString *)string{ 
    self.createButton.enabled = [self isFormValid]; 
    return YES;
    }
    

    因为团队里面每个人对RAC和MVVM的理解不同,每个人对RAC这个框架的熟悉程度也不尽相同,项目时间也比较紧,所以老大最后还是放弃了RAC+MVVM,这篇博客以后(等我使用的时候)再更新吧,。。。。。。。

    相关文章

      网友评论

          本文标题:Reactive​Cocoa 使用范例

          本文链接:https://www.haomeiwen.com/subject/lhwtsttx.html