iOS MVVM 网络请求
使用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
阅读更多- 详解iOS - ASIHTTPRequest 网络请求
- iOS开发网络请求中ASIHTTPRequest的用法整理
- IOS 原生网络请求
- iOS网络数据请求
- ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
- IOS 网络请求中设置cookie
- iOS 网络请求,参数中字典嵌套字典
- iOS网络请求
- iOS网络编程开发GET请求和POST请求
- iOS 使用AFNetworking 3.0库进行网络请求时,取消单个队列和全部队列的方法(取消网络请求)
- iOS 网络请求返回错误码汇总
- 谈谈MVVM和链式网络请求架构
- ios网络学习------7 xml格式数据的请求处理
- IOS Charles(代理服务器软件,可以用来拦截网络请求)
- iOS面试题 网络请求(一)
- iOS之ASIHttp简单的网络请求实现
- iOS- 网络请求的两种常用方式【GET & POST】的区别
- IOS_网络请求_get+post+同步+异步
- iOS -读书笔记-网络请求
- iOS中 网络请求( HTTP )小结