博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSURLConnection使用RAC
阅读量:5832 次
发布时间:2019-06-18

本文共 1146 字,大约阅读时间需要 3 分钟。

+(RACSignal *)requestPhotoData{    NSURLRequest *request = [self popularURLRequest];        return [[NSURLConnection rac_sendAsynchronousRequest:request] reduceEach:^id(NSURLResponse *response, NSData *data){        return data;    }];}复制代码

创建一个URLConnection请求之后返回的数据信号。

+(RACSignal *)importPhotos {    return [[[[[self requestPhotoData]            deliverOn:[RACScheduler mainThreadScheduler]]               map:^id(NSData *data) {                      id results = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];                return [[[results[@"photos"] rac_sequence] map:^id(NSDictionary *photoDictionary) {            FRPPhotoModel *model = [FRPPhotoModel new];                        [self configurePhotoModel:model withDictionary:photoDictionary];            [self downloadThumbnailForPhotoModel:model];                        return model;        }] array];    }] publish] autoconnect];}复制代码

deliverOn用来操作线程; rac_sequence用来序列化,通常用在数组上; configurePhotoModel:withDictionary用来把NSDictionary转成Model; array是把序列化重新转成数组 publish和autoconnect是为了解决多次请求,假如一个信号中发送请求,那么每次订阅都会发送请求,publish保存订阅到数组,当调用连接autoconnect,就会调用所有的订阅者的sendNext。

转载地址:http://sdrdx.baihongyu.com/

你可能感兴趣的文章
机器换人潮: 前5月工业机器人产量增长50.4%
查看>>
Windows Vista for Developers——第四部分:用户帐号控制(User Account Control,UAC)
查看>>
方格填数
查看>>
VR MR技术加持,数据可视化处理将成下一个风口
查看>>
常用网址
查看>>
PowerDesigner添加表注释
查看>>
写得蛮好的linux学习笔记六-帐号管理(收藏)
查看>>
实战:阿里巴巴 DevOps 转型后的运维平台建设
查看>>
霍金再发声:人工智能的下一步或是摧毁中产阶级
查看>>
jQuery中的Sizzle引擎分析
查看>>
Kali Linux更新源以及设置中文
查看>>
mysql 5.6主从同步
查看>>
PHP使用DOMDocument采集
查看>>
生产环境常见的HTTP状态码列表
查看>>
Buffer源码深入分析
查看>>
jQuery的扩展方法写法
查看>>
etcd raft library设计原理和使用
查看>>
计算斐波那契数列的前N项和;
查看>>
网页中嵌入地图位置方法
查看>>
开机就出现cpu id:0f41 patch id:0012
查看>>