国产探花免费观看_亚洲丰满少妇自慰呻吟_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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 迭部县| 儋州市| 兴海县| 理塘县| 南召县| 新平| 睢宁县| 平顶山市| 博客| 泰和县| 化德县| 叶城县| 息烽县| 黄山市| 凌源市| 汉源县| 潜江市| 平陆县| 尼勒克县| 兰考县| 汨罗市| 雅江县| 鄂伦春自治旗| 邻水| 邛崃市| 绥阳县| 漳州市| 安仁县| 漠河县| 濮阳市| 垦利县| 宁武县| 西安市| 谷城县| 若尔盖县| 九台市| 蓝山县| 苏尼特左旗| 盐城市| 油尖旺区| 北宁市|