ios网络总结

网络阶段#

应用程序如何去链接互联网##

1.基于HTTP协议

-HTTP:超文本传输协议(Hyper-Text Markup Language),基于字符的无状态协议。分为请求和响应两个格式,HTTP是基于TCP,这就意味着他是一个可靠的通信协议。

TCP/IP模型是Internet的基石,是一个分层模型,从下往上依次是物理链路层、网络层(IP、寻址)、传输层(TCP/UDP)和应用层(HTTP/FTP/POP3/SMTP/Telent)。

-相关API:

-NSURL:统一资源定位符。协议://域名或者IP地址:端口号/路径/资源

-NSRLRequest/NSMutableURLRequest:HTTP请求

-NSURLResponse:HTTP响应(服务器给应用的响应)

-ios8以前的联网:NSURLConnection 主要有两个类方法,一个用于发送同步请求(阻塞式请求),一个用于发异步请求(非阻塞式请求)

-NSURLSession: (创建一个会话对象,为了创建3种任务):上传(NSURLSessionUploadTask)、下载(NSURLSessionDownloadTask)、和获取数据(NSURLSessionDataTask);而且可以控制三种任务执行(resume),挂起(suspend),取消(cancel)

IOS9出于安全方面的考虑。不允许使用非安全的GTTP协议联网,需要修改项目的Info.plist文件,设置允许非安全的HTTP连接。

-数据解析

-JSON:NSJSONSerialization可以将二进制数据转换成数组或者字典,接下来可以将字典或者数组转换成模型对象,可以使用方式包括kvc、MJExtention/YYModel(推键使用)

-XML:基于SAX解析(顺序的,事件驱动式的解析,省空间)和DOM(文档对象模型,便于查找(XPath/XQuery))解析。第三方库提供的解析基本上是dom解析,比较常用的有:GDataXML/KissXML。

-第三方库AFNetworking的使用:

-AFURLSessionManager

-AFHTTPSessionManager

注意:AFNetworking默认只支持JSON格式的响应数据,需要对AFHTTPResponseSerializer进行设置来支持更多的MIME类型。

-NSURLSessionConfiguration:(保存所有的联网设置)

2.基于套接字(Socket)

-点到点通信

-和服务器通信

套接字是一套联网的API,是由一系列的c函数构成的,有三类套接字:流套接字(基于TCP)、

数据报套接字(基于UDP)、原始套接字(基于IP协议)

地图和定位##

-苹果原生地图(国内使用高德数据)、高德地图、百度地图。

-定位:如果使用CLLocationManager实现定位服务,通过gps设备获得的坐标是地球坐标,在国内使用时需要转换成火星坐标。高德地图和百度地图都对CLLocationManager做了封装,提供了自己的定位服务的API,同过高德地图或者百度地图定位服务获得的坐标已经是修正后的火星坐标或百度坐标,就不需要通过代码进行坐标转换。iOS8以后如果要使用定位服务,必须用户授权,因此需要修改Info.plist文件,设置一直开启或使用时开启定位服务的选项。

-在地图上添加图形覆盖物和标注

-POI搜索功能

-街景地图、室内地图

-计算距离:球面坐标转换成平面坐标(墨卡托坐标)

多线程编程##

-概念:进程、线程;串行、并行;同步、异步;

-多线程编程的五种方案:

-pthreads

-NSObject扩展:performSelectorInBackground/performSelectorOnMainThread

-NSThread

-NSOperationQueue/NSOperation(NSInvocationOperation/NSBlockOperation)

-GCD的使用场景:


dispatch_async(dispatch_get_globel_queue(0,0)^{

//耗时操作

dispatch_async(dispatch_get_main_queue(),^{

//刷新界面

});

});

嵌入式数据库##

-实现持久化操作,有效的管理数据
-SQLite,关系型数据库,用二维表组织数据,支持SQL;
-DDL:creat/drop/alter
-DML:insert/delete/update
-DQL:select
-投影,别名,筛选。去重,排序,分组、聚合函数、子查询、链接查询
-ER图:实体和实体之间有三种关系,分别是一对一,一对多,多对多。
-设计表:范式理论,1NF,2NF(所有的列都要依赖于主键),3NF(消除传递依赖),BCNF,4NF�。
-应用程序中需要将数据库放在沙箱的Documents路径下
-第三方库FMDB
-FMDatabase:executeQuery/executeUpdate
-FMResultSet;可以从行中取出指定的列

提示:如果sql语句中有占位符,那么替换占位符的必须是对象
-设计专门的持久层
-DAO模式:Data Access Object。封装增删改查(CTUD)的编程接口。以对象为单位来组织数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,649评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,039评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,089评论 4 62
  • 1、iOS开发环境 1.1 开发环境 标准的配置是MacOSX+Xcode。 MacOSX的话首选用苹果电脑,Ma...
    ios软件开发学习阅读 261评论 0 0
  • 争吵,无休止的因为各种琐碎的事情争吵。原本感情中应该开心的不是吗?从什么时候起,一切失去了原本的秩序。 ...
    莲开朵朵阅读 198评论 0 0