文章来源:淘论文网   发布者: 毕业设计   浏览量: 40



还可以点击去查询以下关键词:
[毕业]    [仿iOS凤毕业凰FM]   

项目介绍:

FenghuangFM

仿凤凰FM iOS客户端

仿凤凰FM iOS客户端是出于3个目的 1>理解网络请求 2>理解reactiveCocoa 3>理解MVVM

网络请求

凤凰FM的http请求返回数据为JSON格式,可以用Chalse轻松抓取到这些http请求,具体的请求信息在FenghuangFM/HTTPRequest下边。
http请求返回为JSON格式的数据,解析JSON用到了MJExtension库,开题报告,JSON中有list时,使用如下方式告知JSON中key为"audiolist"的list中每个元素是”Audio“类型。

[ActivityModel mj_setupObjectClassInArray:^NSDictionary *{ return @{ @'audiolist':@'Audio' }; }];

另外返回的JSON中key可能会以"new"开头,而我们定义模型时成员变量使用new开头会报错,这时需要将JSON中的key转换成模型中的成员变量名,

[LeaderBoardData mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ return @{ @'newsList':@'newList' }; }];reactiveCocoa

reactiveCocoa在这里的应用和网络请求结合在了一起,载入主页时,开题报告,需要发出两个http请求,等待这两个请求都回返结果后再继续下一步,reactiveCocoa可以非常简单地完成这个动作,

MainFeatureViewModel.m

- (void)refreshDataSource { @weakify(self); RACSignal *signalFocus = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) { @strongify(self); [self requestFocusList:^{ [subscriber sendNext:nil]; }]; return nil; }]; RACSignal *signalRest = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) { @strongify(self); [self requestRest:^{ [subscriber sendNext:nil]; }]; return nil; }]; [[RACSignal combineLatest:@[signalFocus,signalRest]] subscribeNext:^(id x) { @strongify(self); [(RACSubject *)self.updateContentSignal sendNext:nil]; }]; }MVVM

...

源代码在我的github上,地址:https://github.com/tom555cat/FenghuangFM.git
欢迎star和fork!


这里还有:


还可以点击去查询:
[毕业]    [仿iOS凤毕业凰FM]   

请扫码加微信 微信号:sj52abcd


下载地址: http://www.taolw.com/down/7692.docx
  • 上一篇:iOS多功能图片阅定制览器 - NYTPhotoViewer
  • 下一篇:ios更新版本毕业设计号自动更新