您的位置:首页 > 理论基础 > 计算机网络

iOS MVVM 网络请求

2015-10-11 12:25 393 查看

使用mvvm的最大好处,就是给controller肩负,其次也不用再把model和view直接耦合绑定。

viewmodel的最大好处是将网络请求分3个状态:请求中,请求成功,请求失败。

tallk is cheap, bb the code.

typedef enum : NSUInteger {

    kAshNetworkStatusFailed = 0,

    kAshNetworkStatusOK,

    kAshNetworkStatusConnecting

} AshNetworkStatus_t;


提供了3状态点定义。

再controller中对三状态进行观测;

[RACObserve(self.viewModel, networkStatus) subscribeNext:^(NSNumber *x) {

        switch (x.longValue) {

            case kAshNetworkStatusConnecting:{

                [SVProgressHUD show];

            }

                break;

            case kAshNetworkStatusFailed:{

                [SVProgressHUD showErrorWithStatus:@"fail to login"];

            }

                break;

            case kAshNetworkStatusOK:{

                [SVProgressHUD showSuccessWithStatus:self.viewModel.user.name];

            }

                break;

            default:

                break;

        }

    }];


RACObserve是ReactiveCocoa中的一个宏,用来醉快捷的实现kvo.
这样viewModel将网络请求分离出来controller。


源码下载 :http://pan.baidu.com/s/1jGpklrK

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: