iOS 網(wǎng)絡 地圖 數(shù)據(jù)庫簡介(2015)

網(wǎng)路階段#

應用程序如何連接互聯(lián)網(wǎng)##

  1. 基于HTTP協(xié)議
  • HTTP: 超文本傳輸協(xié)議(Hyper - Text Markup Language),基于字符的無狀態(tài)協(xié)議鸡岗。有請求和響應兩種格式,HTTP是基于TCP的沼死,這就意味著他是一個可靠的通信協(xié)議锡移。

TCP/IP模型是Internet的基石呕童,是一個分層模型,從下往上依次是物理鏈路層淆珊、網(wǎng)絡層(IP夺饲,尋址和路由)、傳輸層(TCP/UDP,前者是可靠通信協(xié)議往声,后者是不可靠通信協(xié)議)和應用層(HTTP/FTP/POP3/SMTP/Telent)擂找。

  • 相關API:
    • NSURL:統(tǒng)一資源定位符,協(xié)議://域名或者IP地址:端口號/路徑/資源
    • NSURLRequest / NSMutableURLRequest:HTTP請求(應用對服務器的請求)
    • NSURLResponse:HTTP響應(服務器給應用的響應)
    • NSURLConnection:iOS 7以前的聯(lián)網(wǎng)方式浩销,主要有兩個類方法贯涎,一個用于發(fā)送同步請求(阻塞式請求),一個用于發(fā)送異步請求(非阻塞式請求)
    • NSURLSession:通過該對象可以創(chuàng)建三種任務:上傳(NSURLSessionUploadTask)慢洋、下載(NSURLSessionDownloadTask)塘雳、獲取數(shù)據(jù)(NSURLSessionDataTask)。任務可以執(zhí)行(resume)普筹、掛起(suspend)败明、取消(cancel)
    • NSURLSessionConfiguration:保存所有的聯(lián)網(wǎng)設置

iOS 9出于安全方面的考慮,不允許使用非安全的HTTP協(xié)議聯(lián)網(wǎng)斑芜,需要修改項目的Info.plist文件設置允許非安全的HTTP連接。

  • 數(shù)據(jù)解析:
    • JSON:NSJSONSerialization可以將服務器響應的二進制式的JSON數(shù)據(jù)轉(zhuǎn)換成數(shù)組或字典祟霍,接下來可以講字典或數(shù)組轉(zhuǎn)換成模型對象杏头,可以使用的方式包括:KVC、JSONModel沸呐、JSONKit醇王、MJExtension、YYModel(推薦使用)
    • XML:SAX解析(順序的崭添,事件驅(qū)動式的解析寓娩,省空間)和DOM解析(文檔對象模型,方便查找(XPath/XQuery))呼渣。第三方庫提供的解析基本上是DOM解析棘伴,比較常用的有:GDataXML、KissXML屁置、RaptureXML
  • 第三方庫AFNetworking的使用:
    • AFHTTPSessionManager
    • AFURLSessionManager

    注意:AFNetworking默認是只支持JSON格式的相應數(shù)據(jù)焊夸,需要對AFHTTPResponseSerializer進行設置來支持更多的MIME類型。

  1. 基于套接字(Socket)
  • 點到點通信
  • 和服務器通信
  • 套接字是一套聯(lián)網(wǎng)的API蓝角,是由一系列C語言構成的阱穗,有三類套接字,流套接字(基于TCP協(xié)議)使鹅、數(shù)據(jù)報套接字(基于UDP)揪阶、原始套接字(基于IP協(xié)議)

地圖和定位##

  • 蘋果原生地圖(國內(nèi)使用高德數(shù)據(jù))、高德地圖患朱、百度地圖鲁僚。
  • 定位:如果使用CLLocationManager實現(xiàn)定位服務,通過GPS設備獲得的坐標是地球坐標,在國內(nèi)使用時需要轉(zhuǎn)換成火星坐標蕴茴。高德地圖和百度地圖都不直接使用蘋果原生的CLLocationManager實現(xiàn)定位劝评,而是對其做了二次封裝,提供了自己的定位服務的API倦淀,通過高德地圖或百度地圖定位服務獲得的坐標已經(jīng)是修正后的火星坐標或百度坐標蒋畜,就不需要通過代碼進行坐標轉(zhuǎn)換。iOS 8開始如果要使用定位服務撞叽,必須用戶授權姻成,因此需要修改Info.plist文件,設置一直開啟或使用時開啟定位服務的選項愿棋。
  • 在地圖上添加圖形覆蓋物和標注
  • POI收索功能
  • 街景地圖科展,室內(nèi)地圖
  • 計算距離:球面坐標轉(zhuǎn)換成平面坐標(墨卡托坐標)

多線程地圖##

  • 概念:進程,線程糠雨,串行才睹,并行,同步甘邀,異步
  • 五種實現(xiàn)方案:
    • pthreads
    • NSObject擴展:performSelectorOnMainThread / performSelectorInBackground
    • NSThread
    • NSOperationQueue / NSOperation (NSInvocationOperation / NSBlockOperation)
    • GCD的使用場景:
      dispatch_async(dispatch_get_global_queue(0,0), ^{
          // 執(zhí)行耗時操作
          dispatch_async(dispatch_get_main_queue(), ^{
              // 刷新界面
          });
      });
    

##嵌入式數(shù)據(jù)庫##
- 實現(xiàn)持久化操作琅攘,有效地管理數(shù)據(jù)。
- SQLite松邪,關系型數(shù)據(jù)庫坞琴,用二維表組織數(shù)據(jù),支持SQL逗抑。
 - DDL:create剧辐、drop、alter
 - DML:insert邮府、delete荧关、update
 - DQL: select
   - 投影、別名褂傀、篩選羞酗、去重、排序紊服、分組檀轨、聚合函數(shù)、子查詢欺嗤、連接查詢
- ER圖(實體關系圖):實體和實體之間有三種關系参萄,分別是一對一、一對多煎饼、多對多讹挎。
- 設計表:范式理論、1NF、2NF筒溃、3NF马篮、BCNF、4NF怜奖。
- 應用程序中需要將數(shù)據(jù)庫放在沙箱的Documents路徑下浑测。
- 第三方庫FMDB
 - FMDatabase:executeQuery / executeUpdate
 - FMResultSet:可以從行中取出指定的列
 >提示:如果在SQL語句中有占位符,那么替換占位符的必須是對象不能是基本類型歪玲,否者程序會崩潰迁央。
- 設計專門的持久層
 - DAO模式:Data Access Object,封裝增刪改查(CRUD)的編程接口滥崩,以對象以單位來組織數(shù)據(jù)岖圈。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市钙皮,隨后出現(xiàn)的幾起案子蜂科,更是在濱河造成了極大的恐慌,老刑警劉巖短条,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件导匣,死亡現(xiàn)場離奇詭異,居然都是意外死亡慌烧,警方通過查閱死者的電腦和手機逐抑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門鸠儿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屹蚊,“玉大人,你說我怎么就攤上這事进每⌒谠粒” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵田晚,是天一觀的道長嘱兼。 經(jīng)常有香客問我,道長贤徒,這世上最難降的妖魔是什么芹壕? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮接奈,結果婚禮上踢涌,老公的妹妹穿的比我還像新娘。我一直安慰自己序宦,他們只是感情好睁壁,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般潘明。 火紅的嫁衣襯著肌膚如雪行剂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天钳降,我揣著相機與錄音厚宰,去河邊找鬼。 笑死牲阁,一個胖子當著我的面吹牛固阁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播城菊,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼备燃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凌唬?” 一聲冷哼從身側(cè)響起并齐,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎客税,沒想到半個月后况褪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡更耻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年测垛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秧均。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡食侮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出目胡,到底是詐尸還是另有隱情锯七,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布誉己,位于F島的核電站眉尸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏巨双。R本人自食惡果不足惜噪猾,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望筑累。 院中可真熱鬧袱蜡,春花似錦、人聲如沸疼阔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至迅细,卻和暖如春巫橄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背茵典。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工湘换, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人统阿。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓彩倚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親扶平。 傳聞我的和親對象是個殘疾皇子帆离,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容