ReactiveCocoa简介五:用信号封装异步API

前端之家收集整理的这篇文章主要介绍了ReactiveCocoa简介五:用信号封装异步API前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

接口如下

typedef void (^RWSignInResponse)(BOOL);
  
@interface RWDummySignInService : NSObject
  
- (void)signInWithUsername:(NSString *)username
                  password:(NSString *)password
                  complete:(RWSignInResponse)completeBlock;
                   
@end

这个service有3个参数,用户名、密码和一个完成回调block。这个block会在登录成功或失败时执行。你可以在按钮点击事件的subscribeNext: blcok里直接调用这个方法


1、创建信号

- (RACSignal *)signInSignal {
return [RACSignal createSignal:^RACDisposable *(id subscriber){
   [self.signInService 
     signInWithUsername:self.usernameTextField.text
               password:self.passwordTextField.text
               complete:^(BOOL success){
                    [subscriber sendNext:@(success)];
                    [subscriber sendCompleted];
     }];
   return nil;
}];
}

使用RACSignal的createSignal:方法来创建信号。

这个block的返回值是一个RACDisposable对象,它允许你在一个订阅被取消时执行一些清理工作。当前的信号不需要执行清理操作,所以返回nil就可以了。

猜你在找的React相关文章