首页 > 移动平台 > 详细

iOS开发-github-iOS客户端代码

时间:2015-11-10 14:27:17      阅读:433      评论:0      收藏:0      [点我收藏+]

1、源码下载地址,直接使用git克隆下来。-->

git clone --recursive https://github.com/leichunfeng/MVVMReactiveCocoa.git 克隆到本地。

然后运行,安装到手机。

2、如果遇到xcode报错:This application‘s application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed.说明包名重复要么,你卸掉原来安装的那个用appstore下载的,要么,把包名改成另一个名字。成功安装到手机后,直接出现登陆界面。

3、直接进入代码查看MRCAppDelegate.m文件。前面的configure...可以 省略先不看,直接看self.services,返回对象直接设置为rootviewcontroller。

4、前戏:Mantle :使用Mantle来对接收的数据进行Model转换,用起来还是挺方便的,这里有个例子,http://www.cocoachina.com/ios/20140224/7868.html 可以快速学会怎么使用。说实话,用起来还是比苹果自带的方便,不过可能是本人已经习惯直接使用系统自带的解析方法,没怎么感觉能节省多少时间。

5、先说说项目架构,所有的model都继承自OCTObject--> @interface OCTObject : MTLModel。代码中比较好的做法是接收到json数据,解析成dictionary之后,会根据解析出来的类型,还有你传入的model.class来自动判断回传model还是modelArray,这种做法是挺不错的,值得学习,之前自己都没想过再这么封装一层。自己也学着搞了一个,关键代码如下:

- (RACSignal *)fetchModelForPostMoehod:(NSString *)url parameter:(NSDictionary *)parameter Model:(Class)modelClass{
    
    return [[self PostRequestJSONSerialization:url parameter:parameter]
            map:^id(id value) {
                if ([value isKindOfClass:NSArray.class]) {
                    return [MTLJSONAdapter modelsOfClass:modelClass fromJSONArray:value error:nil];
                }else if([value isKindOfClass:NSDictionary.class]){
                    return [MTLJSONAdapter modelOfClass:modelClass fromJSONDictionary:value error:nil];
                }else{
                    return value;
                }
            }];
    
}

6、接下来就是viewModel了,所有的viewModel都要求遵循 MRCViewModelProtocol协议,继承自MRCViewModel,后面还有一个专门给tableview用的tableviewmodel,viewmodel在初始化的时候,清一色调用- (instancetype)initWithServices:(id)services params:(id)params ,可以方便往viewModel传入参数。viewModel主要实现了网络请求回来的数据处理,(处理成可以给ViewController直接用的形式),还有加工其他相关viewModel,当点击某个跳转时,直接调用的RACCommand等。

7、所有的viewController都要求遵循MRCViewProtocol协议,都继承自MRCViewController,当然还有一个MRCTableViewController继承自MRCViewController,这里主要想说的是MRCTableViewController这个类的封装,当tableviewmodel把数据处理好之后,传入MRCTableViewController控制器,然后根据dataSource配置tableview的delegate和datasource,并且点击tableviewCell的响应这些都封装进了MRCTableViewController里面。接下来你继承自MRCTableViewController的控制器在做tableviewController的时候,超级方便,一般界面60行以内代码就能搞定,而且逻辑分层非常清晰,后期维护的时候,阅读代码绝对爽死的说。

自己参照大神的代码,写了个Demo,见Github:https://github.com/caijunrong/CJRReactiveCocoa.git 




iOS开发-github-iOS客户端代码

原文:http://my.oschina.net/caijunrong/blog/528437

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!