文档章节

用Alamofire进行网络请求的一段代码解析(一)

rainckoo
 rainckoo
发布于 2015/02/25 20:45
字数 493
阅读 4679
收藏 1

        /*

            向服务器发送请求:

            request实际上有四个参数,但是后两个参数都设定为了默认值,所以在调用的时候只要初始化前两个参数就可以。

            第一个参数是设定向服务器发起的请求的方法,通常为GET方法和POST方法。

            第二个参数就是URL地址。

            第三个参数是填写一些必要的信息,比如说使用密钥。

            该方法返回一个Alamofire.Request对象

        

            responseJSON方法有一个必包作为参数。这个必包有四个参数,没有返回值。但是responseJSON有一个Alamofire.request的返回值。这个返回值可以不使用。

            下面的responseJSON的写法是闭包Trailing

            参数列表实际上是一个元组,所以,不关心的元素,可以用下划线忽略掉。

        

            问题:如何实现网络请求完成后跳用responseJSON()方法?

        */

        Alamofire.request(.GET, "https://api.500px.com/v1/photos", parameters:["consumer_key": str]).responseJSON() {

            (_, _, JSON, _) in

            let photoInfos = (

                JSON?.valueForKey("photos") as [NSDictionary]

                ).filter({

                    /*

                        filter是一个数组的过滤函数,它有一个闭包参数。闭包参数有一个任意类型的参数,并返回一个bool值。当bool值为真时,将对应的数组的元素存放到一个新数组中。

                    

                        这个过滤条件可以解读为,一个元素为字典的数组调用filter方法,将字典中key“nsfw”的值为false的字典保存到新的数组中。

                    */

                        ($0["nsfw"] as Bool) == false

                }).map(){

                    /*

                        map函数是数组的一个函数,对于每个数组中的元素进行处理。它有一个返回值为任意类型的闭包。它的返回值是一个任意类型的数组。

                        

                        在这个例子里,闭包的方法是把字典的idimage_url关键字的值对PhotoInfo进行初始化,并生成一个PhotoInfo的对象数组。

                    */

                    PhotoInfo(

                        id: $0["id"] as Int, url: $0["image_url"] as String

                    )

                }

            

        }


© 著作权归作者所有

共有 人打赏支持
rainckoo
粉丝 2
博文 27
码字总数 6114
作品 0
大兴
程序员
私信 提问
对于AlamoFire几点思考

本文由CocoaChina--BYB1132(论坛ID)翻译 原文:Thoughts On AlamoFire--Swift’s AFNetworking Implementation HTTP协议就是现代开发的同义词,对于有经验的iOS开发者来说, 熟悉并尽可能使...

刘星石
2016/03/02
15
0
Alamofire的设计之道

前言: Alamofire是一个由Swift编写的优雅的网络开发框架。 大部分用Swift编写的iOS App的网络模块都是基于Alamofire的。作为Swift社区最活跃的几个项目之一,有许多开发者在不断的对其进行完...

黄文臣
2017/06/15
0
0
深入理解Moya

前言 Moya是一个基于Alamofire开发的,轻量级的Swift网络层。Moya的可扩展性非常强,可以方便的RXSwift,PromiseKit和ObjectMapper结合。 如果你的项目刚刚搭建,并且是纯Swift的,非常推荐以...

黄文臣
2017/08/11
0
0
使用swiftyJson和Alamofire做网络请求,以及json数据的解析

目的:使用Alamofire从网络请求json数据。用swiftyJson解析json数据,最后将需要的数据赋值给一个NSArray的数组。 1.下载swiftyJson 和 Alamofire(pods方式下载) 2.在文件中引入: 3.网络请...

issac宝华
2016/09/05
329
0
iOS 第三方库收藏以及相关iOS开发工具

1.autolayout :Swift: SnapKit ,OC: Masonry 1.1.YYKit,YYKit 是一组庞大、功能丰富的 iOS 组件 1.2 MJExtension 以及 MJFresh 2.达到 60 FPS 的滚动帧率 :Swift :AsyncDisplayKit 3.swift加......

樗同学
2016/08/10
34
0

没有更多内容

加载失败,请刷新页面

加载更多

三星Galaxy S10可能会配备TOF 3D摄像头

12月3日消息,据Phone Arena报道,三星Galaxy S10可能会配备TOF 3D摄像头。 Phone Arena报道称三星Galaxy S10一共有五颗摄像头(前置双摄+后置三摄),而5G版本的Galaxy S10后置四颗摄像头,...

问题终结者
29分钟前
8
0
fabric增删改查Mac

备份1.3版本,重新下载1.1版本到fabric文件夹 /opt/gopath/src/github.com/hyperledger/fabric -> /opt/gopath/src/github.com/hyperledger/fabric1.3 新建/opt/gopath/src/github.com/hype......

八戒八戒八戒
58分钟前
9
0
盘点愚人节各大网站彩蛋,谁最爱恶搞?

如今的愚人节俨然已是各品牌宣传了一个重要节日,同时,也成为了各大互联网科技企业凑热闹,比拼创意和策划的节日。跟小编一起看看有哪些有趣的策划吧! Google地图变成吃豆人游戏 每年愚人节...

临江仙卜算子
今天
6
0
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析

本文分析的是源码,所以至少读者要熟悉它们的接口使用,同时,对于并发,读者至少要知道 CAS、ReentrantLock、UNSAFE 操作这几个基本的知识,文中不会对这些知识进行介绍。Java8 用到了红黑树...

java菜分享
今天
6
0
玩手机与做实验

看过这样一个故事:说的是在二十世纪二十年代初的一个深夜,担任英国剑桥大学卡文迪许实验室主任的卢瑟福来实验室检查,发现一位学生还在做实验。卢瑟福就问他:“你上午做什么了?”学生回答...

Bob2100
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部