Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOS - NetworkService
Search
Ryan Chung
December 11, 2014
Technology
0
120
iOS - NetworkService
Ryan Chung
December 11, 2014
Tweet
Share
More Decks by Ryan Chung
See All by Ryan Chung
MovieBot Development
ryan403
0
320
Design Voice-First Games for Alexa
ryan403
0
75
AI Teaching Talk
ryan403
0
130
Cognitive Service
ryan403
0
110
jQuery & API Practices
ryan403
0
150
CSS Practices
ryan403
1
170
JavaScript Practices
ryan403
0
110
Web Programming - Lesson 6
ryan403
1
650
Web Programming - Lesson 7
ryan403
1
650
Other Decks in Technology
See All in Technology
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
620
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.7k
使いにくいの壁を突破する
sansantech
PRO
1
130
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
170
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
420
Agile Leadership Summit Keynote 2026
m_seki
1
560
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.2k
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.1k
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.3k
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
440
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
230
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
First, design no harm
axbom
PRO
2
1.1k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
320
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
62
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
The Mindset for Success: Future Career Progression
greggifford
PRO
0
230
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
The Pragmatic Product Professional
lauravandoore
37
7.1k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
180
Transcript
Network Service http://MobileDev.TW iOS APP Developer 網路服務 – 資料傳送與接收
[email protected]
1
Network Service http://MobileDev.TW 大綱 1. 基本網路傳輸方式 • 同步傳輸 •
非同步傳輸 2. 網路常見資料格式一:JSON • NSJSONSerialization 3. 網路常見資料格式二:XML • XML Parser • XML與Master-Detail ViewController 4. 資料來源與介接 • Open Data API • 自己提供資料 2
Network Service http://MobileDev.TW 1-1.同步傳輸取得網路資料 • 透過NSURLConnection的同步請求,直接取得網 路資料 • 缺點:資料量大時,會造成App停頓
3
Network Service http://MobileDev.TW 同步傳輸取得網路資料 1. 在Storyboard上新增一顆按鈕,並建立程式關聯性 2. 在對應按鈕Action的方法中,加入以下內容 4
Network Service http://MobileDev.TW 1-1.Lab 取得網路圖片 • 取得網路上的一張圖片,顯示在 畫面上 5
Network Service http://MobileDev.TW Lab 取得網路圖片 1. 在storyboard中加入一個imageView,並建立程式 關聯性(Outlet) 2.
修改按鈕按下後所執行的方法 6
Network Service http://MobileDev.TW PS.避免圖像比例失真 7 • UIViewContentModeScaleToFill • 完全滿版(可能比例會失真)
• UIViewContentModeScaleAspectFit • 維持影像比例與完整圖,其他顯示區域以透明顯示 • UIViewContentModeScaleAspectFill • 滿版+維持影像比例(但部分圖像內容可能會截掉)
Network Service http://MobileDev.TW 1-2.非同步傳輸 • 不會Hold住使用者畫面 8
Network Service http://MobileDev.TW 非同步傳輸 1. 在ViewController.h中加入2個iVar: • returnData (NSMutableData)
• myIndicator (UIActivityIndicatorView) 9
Network Service http://MobileDev.TW 非同步傳輸 2. 修改按鈕方法,設定Indicator,疊到ImageView上 ,開始運轉 10
Network Service http://MobileDev.TW 非同步傳輸 3. 繼續撰寫在按鈕方法中,設定網址、Request,啟動 連線,開始取得資料 11
Network Service http://MobileDev.TW 非同步傳輸 4. 實作以下4個Delegate方法(接收回應、接收資料 、完成接收、發生錯誤) 12
Network Service http://MobileDev.TW Lab1 • 如何顯示出下載進度? 線索: 1. 接收到的response中有一個屬性可取得欲接收內容長度
2. NSData有一個屬性可得知data的檔案大小 3. 注意數值型態 13
Network Service http://MobileDev.TW Lab2 • 使用sendAsynchronousRequest 14
Network Service http://MobileDev.TW 2.網路常見資料格式一:JSON 這誰? 15
Network Service http://MobileDev.TW 台北市立動物園資料 16
Network Service http://MobileDev.TW 資料來源 http://data.taipei.gov.tw/opendata/apply/json /RjYyMDdCMzUtRDE5Ny00MTg1LTg4ODgtOEMyNkE1NDEyMkY0 17
Network Service http://MobileDev.TW 單機 -> 網路 1. 以先前TableView的例子為基礎開始修改 2.
增加接收資料用的responseData以及tableView 要用的資料來源dataArray 18
Network Service http://MobileDev.TW 單機 -> 網路 3. 在viewDidLoad中增加資料請求、來源設定 19
Network Service http://MobileDev.TW 單機 -> 網路 4. 在非同步接收資料的方法實作中,完成接收時,使 用NSJSONSerialization來轉換資料放入陣列
,tableView重新整理 20
Network Service http://MobileDev.TW 單機 -> 網路 5. 設定tableView的顯示與資料陣列的關聯性: •
資料筆數:依據陣列元素數量 • 項目文字:依據陣列每間房間裡頭用A_Name_Ch對應的值 21
Network Service http://MobileDev.TW Lab • 找到圖片的資料來源,設定好第二頁可以呈現動物的 圖片 • 有值與無值該如何處理?
22
Network Service http://MobileDev.TW NSJSONSerialization 使用 23
Network Service http://MobileDev.TW 3.處理XML資料 24
Network Service http://MobileDev.TW 處理XML資料 25
Network Service http://MobileDev.TW 處理XML資料 arrayResultObjects 26 NewsItemObject stringTitle stringLink
stringPubDate stringDescription
Network Service http://MobileDev.TW 處理XML資料 1. 建立一個專案,選擇Master-Detail 2. 新建檔案,繼承NSObject,命名為NewsItemObject 3.
NewsItemObject.h (依要處理的XML進行調整) 27
Network Service http://MobileDev.TW 處理XML資料 28 4. 新增檔案,繼承至NSObject,命名 為MyXMLParserDelegate
Network Service http://MobileDev.TW 處理XML資料 5. MyXMLParserDelegate.m,初始化方法 29
Network Service http://MobileDev.TW 處理XML資料 6. MyXMLParserDelegate.m,實作三個方法 didStartElement:遇到一個元件的開始標籤 30
Network Service http://MobileDev.TW 處理XML資料 7. MyXMLParserDelegate.m,實作三個方法 foundCharacters:遇到一個元件的內容 31
Network Service http://MobileDev.TW 處理XML資料 8. MyXMLParserDelegate.m,實作三個方法 didEndElement:遇到一個元件的結束標籤 32
Network Service http://MobileDev.TW 處理XML資料 9. MasterViewController.h 33
Network Service http://MobileDev.TW 處理XML資料 10. MasterViewController.m的viewDidLoad 34
Network Service http://MobileDev.TW 處理XML資料 11. 實作非同步傳輸的四個方法 35
Network Service http://MobileDev.TW 處理XML資料 12. 實作非同步傳輸的四個方法 36
Network Service http://MobileDev.TW 處理XML資料 13. 設定tableView的顯示內容 37
Network Service http://MobileDev.TW 3.Lab • 修改範例,讓使用者按下該則新聞時,能在下一個 畫面呈現該則新聞網頁 38
Network Service http://MobileDev.TW Lab 1. 在第二個畫面中,增加一個webView,一個NSString 39
Network Service http://MobileDev.TW Lab 2. 第二個畫面元件載入完成時,就載入網頁 40
Network Service http://MobileDev.TW Lab 3. 回到第一個畫面,設定prepareForSegue 41
Network Service http://MobileDev.TW 資料介接 42 別人家的Server XML or JSON
自己架的Server PHP + MySQL XML Parser JSON Array & Dic
Network Service http://MobileDev.TW 台北市政府公開資料平台 • 網址:http://data.taipei.gov.tw/ • 提供資料格式:XML or
jSON 43
Network Service http://MobileDev.TW 一般介接 44
Network Service http://MobileDev.TW 進階顯示與過濾 45
Network Service http://MobileDev.TW 進階顯示與過濾 46
Network Service http://MobileDev.TW 進階顯示與過濾 47
Network Service http://MobileDev.TW 如果資料來源是自己的SERVER… 48
Network Service http://MobileDev.TW 自建Server提供內容 49
Network Service http://MobileDev.TW 建構順序 1. 建構資料庫資料 2. 撰寫API,吐出XML or
JSON 3. 行動端程式接收資料 4. 顯示於手機畫面 50
Network Service http://MobileDev.TW Data API By PHP 51 資料庫連線
撈出資料 儲存資料 資料呈現
Network Service http://MobileDev.TW 不想自建SERVER但又想自己維護資料 52
Network Service http://MobileDev.TW Parse 53