小编Ant*_*ior的帖子

RxSwift正确的方式

我正在尝试使用RxSwift编写一个MVVM,并与我在ReactiveCocoa中为Objective-C做的比较,以正确的方式编写我的服务有点困难.

例子是登录服务.

使用ReactiveCocoa(Objective-C)我编写如下代码:

// ViewController


// send textfield inputs to viewmodel 
RAC(self.viewModel, userNameValue) = self.fieldUser.rac_textSignal;
RAC(self.viewModel, userPassValue) = self.fieldPass.rac_textSignal;

// set button action
self.loginButton.rac_command = self.viewModel.loginCommand;

// subscribe to login signal
[[self.viewModel.loginResult deliverOnMainThread] subscribeNext:^(NSDictionary *result) {
    // implement
} error:^(NSError *error) {
    NSLog(@"error");
}];
Run Code Online (Sandbox Code Playgroud)

我的viewModel应该是这样的:

// valid user name signal
self.isValidUserName = [[RACObserve(self, userNameValue)
                         map:^id(NSString *text) {
                             return @( text.length > 4 );
                         }] distinctUntilChanged];

// valid password signal
self.isValidPassword = [[RACObserve(self, userPassValue)
                         map:^id(NSString *text) {
                             return @( text.length > …
Run Code Online (Sandbox Code Playgroud)

mvvm frp reactive-cocoa swift rx-swift

7
推荐指数
1
解决办法
2800
查看次数

标签 统计

frp ×1

mvvm ×1

reactive-cocoa ×1

rx-swift ×1

swift ×1