国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

仿iOS鳳凰FM

2019-11-09 18:58:10
字體:
來源:轉載
供稿:網友

仿鳳凰FM 

iOS客戶端是出于3個目的 

理解網絡請求 理解reactiveCocoa 理解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

下載鏈接: https://github.com/tom555cat/FenghuangFM.git歡迎star


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鹤山市| 连州市| 北票市| 涟源市| 东兰县| 吉安县| 安泽县| 任丘市| 财经| 陵水| 普洱| 彭山县| 莫力| 罗甸县| 西畴县| 湖北省| 昌乐县| 稷山县| 高陵县| 青阳县| 黑水县| 监利县| 金沙县| 张家港市| 喀喇| 军事| 花莲市| 张家界市| 东兰县| 新乡市| 高邮市| 弋阳县| 富阳市| 武清区| 盘山县| 波密县| 淮北市| 北海市| 手游| 乌拉特后旗| 合川市|