內容簡介
通過利用可用的iOS框架,使用現代的Objective-C編程規則的方式,本書將逐步引導你創建高級iOS套用。貫穿全部章節,你將發現70個貼合實際的示例程式,你可以下載這些示例並以此為起點。使用本指南,你將能夠創建最前沿的套用,並為發布到App Store做好準備。
圖書目錄
第Ⅰ部分開發高級UI
第1章創建PersonalLibrary 3
1.1創建PersonalLibrary 4
1.1.1項目基礎知識 4
1.1.2啟動新項目 5
1.1.3配置項目 6
1.1.4定義常量 8
1.1.5使用配置檔案 8
1.1.6導入頭檔案 10
1.2註冊——登錄 11
1.2.1創建註冊邏輯 12
1.2.2初始化數據 15
1.2.3初始化套用的默認設定 15
1.2.4創建登錄邏輯 16
1.2.5保護密碼的安全 19
1.2.6在keychain中存儲密碼 20
1.3崩潰管理 21
1.3.1理解崩潰 21
1.3.2實現崩潰處理程式 22
1.4本章小結 28
第2章Tableview進階指南 31
2.1理解UITableView 31
2.1.1datasource和delegate 32
2.1.2滾動 36
2.2構建聊天視圖控制器 39
2.2.1構建datasource 40
2.2.2構建聊天數據對象 40
2.2.3構建定製的UITableView控制項 43
2.2.4靈活的單元格高度 47
2.2.5開發定製的單元格 47
2.2.6創建聊天用戶對象 51
2.2.7融會貫通 52
2.3UITableView的下拉功能 58
2.3.1實現UISearchbar 68
2.3.2添加字母表索引 73
2.4本章小結 78
第3章MapKit框架 79
3.1模擬iOS設備的位置移動 80
3.1.1為何需要一個GPS模擬器 80
3.1.2創建模擬器 80
3.1.3使用GoogleMaps創建GPS路線檔案 84
3.1.4實現YDLocation-Simulator類 88
3.2使用標記 90
3.2.1創建定製的標記 91
3.2.2回響標記的批註 95
3.2.3標記群集 101
3.3本章小結 119
第4章ActionView和Alert概述 121
4.1請求用戶輸入 121
4.2使用多個選項創建UIActionSheet 122
4.3呈現UIActionSheet 126
4.3.1使用showInView方法來呈現 126
4.3.2使用showFromTabBar方法來呈現 126
4.3.3使用showFromBarButtonItem方法來呈現 129
4.3.4使用showFromRect方法來呈現 130
4.3.5使用showFromToolbar方法來呈現 132
4.3.6用戶輸入的回響 134
4.3.7處理用戶選項 134
4.3.8擴展UIAlertView 137
4.3.9在UIAlertView上添加UITextField 137
4.4本章小結 141
第5章國際化:為全世界構建套用 143
5.1本地化套用 143
5.1.1建立本地化 144
5.1.2本地化InterfaceBuilder檔案 145
5.1.3本地化字元串 147
5.1.4本地化圖片 149
5.1.5本地化套用的名稱 152
5.2使用日期格式 152
5.2.1區域的概念 152
5.2.2日曆概述 156
5.2.3以通用方式存儲日期 158
5.3使用數字 159
5.4本章小結 164
第6章多媒體的使用 165
6.1可攜式文檔格式 165
6.2使用UIWebView顯示PDF文檔 166
6.3Instruments分析工具介紹 168
6.4使用QuickLook顯示PDF文檔 170
6.5從PDF文檔創建縮略圖 173
6.6創建PDF文檔 177
6.7播放和錄製音頻 181
6.8相關框架介紹 181
6.8.1AVFoundation框架 181
6.8.2AudioToolbox框架 182
6.8.3MediaPlayer框架 182
6.9播放來自套用包的音頻檔案 182
6.10從iTunes庫中播放音頻 187
6.11播放音頻流 190
6.12錄製音頻 193
6.13播放和錄製視頻 198
6.14從iTunes庫播放視頻 201
6.15播放YouTube視頻 204
6.16錄製視頻 206
6.17本章小結 209
第Ⅱ部分網路和數據處理
第7章使用Web服務和解析 213
7.1為什麼需要使用Web服務 213
7.2了解基本網路 214
7.2.1了解協定 214
7.2.2了解操作 215
7.2.3了解回響代碼 215
7.3Web服務簡介 215
7.4調用HTTP服務 216
7.4.1請求網站 216
7.4.2從HTTPURL下載圖片 219
7.4.3使用HTTPS請求安全網站 224
7.4.4使用數據塊 227
7.5調用REST服務 231
7.5.1構建請求 232
7.5.2處理回響 235
7.5.3發布到RESTful服務 241
7.6發出SOAP請求 248
7.6.1為請求做準備 250
7.6.2將值傳遞到操作 252
7.6.3了解安全的SOAP請求 257
7.7更多解析 259
7.7.1逗號分隔值檔案 260
7.7.2將XML轉換為NSDictionary 266
7.8本章小結 269
第8章使用FTP 271
8.1開發FTP客戶端 271
8.1.1編寫簡單的FTP客戶端 272
8.1.2下載遠程檔案 276
8.1.3創建遠程目錄 278
8.1.4列出遠程目錄 279
8.1.5上傳檔案 283
8.1.6從NSStream中讀取 284
8.1.7寫入NSStream 284
8.1.8編寫複雜的FTP客戶端 288
8.2使用FTP客戶端 296
8.3本章小結 296
第9章實現CoreData 297
9.1CoreData簡介 297
9.1.1為什麼應使用CoreData 298
9.1.2託管對象上下文簡介 298
9.1.3託管對象模型簡介 298
9.1.4託管對象簡介 298
9.1.5持久性存儲簡介 299
9.1.6獲取請求簡介 299
9.2在套用中使用CoreData 299
9.2.1創建託管對象模型 300
9.2.2創建託管對象 302
9.2.3創建持久性存儲 303
9.2.4設定Appdelegate 304
9.3在套用中使用CoreData 307
9.3.1使用託管對象 307
9.3.2獲取託管對象 308
9.3.3使用關係 313
9.3.4了解模型更改 317
9.4針對性能進行調優 322
9.4.1最佳化保存 326
9.4.2配置託管對象上下文 327
9.5通過CoreData實現並發 328
9.6本章小結 330
第III部分集成套用
第10章通知 333
10.1實現本地通知 333
10.1.1了解本地通知 333
10.1.2創建通知 335
10.1.3接收通知 338
10.2了解推送通知 338
10.2.1配置開發者門戶 340
10.2.2獲取證書 343
10.2.3通過UrbanAirship實現 345
10.3外部通知 348
10.3.1自定義URL模式 348
10.3.2回響URL請求 349
10.4本章小結 350
第11章傳送電子郵件、SMS和撥打電話 351
11.1傳送電子郵件 351
11.1.1撰寫電子郵件 352
11.1.2使用附屬檔案 354
11.2傳送SMS(文本訊息) 354
11.2.1驗證SMS是否可用 355
11.2.2撰寫文本訊息 355
11.3撥打電話號碼 356
11.4本章小結 357
第12章了解AddressBook 359
12.1AddressBook框架簡介 359
12.2訪問AddressBook 360
12.2.1選擇聯繫人 360
12.2.2請求訪問許可權 362
12.2.3顯示並編輯聯繫人 365
12.2.4創建聯繫人 367
12.2.5刪除聯繫人 369
12.3以編程方式訪問AddressBook 370
12.3.1了解AddressBook 370
12.3.2了解記錄 373
12.3.3了解屬性 374
12.3.4以編程方式創建聯繫人 375
12.3.5以編程方式刪除聯繫人 378
12.4本章小結 378
第13章事件編程 379
13.1EventKit框架簡介 379
13.2使用EventKitUI框架 380
13.2.1請求訪問許可權 380
13.2.2訪問日曆 382
13.2.3創建和編輯日曆事件 384
13.3以編程方式訪問Calendar資料庫 385
13.3.1創建事件 385
13.3.2編輯事件 390
13.3.3刪除事件 390
13.3.4保持同步 390
13.4使用提醒 391
13.4.1創建提醒 391
13.4.2編輯提醒 392
13.4.3刪除提醒 392
13.4.4使用警報 392
13.5本章小結 394
第14章與社交媒體集成 395
14.1社交媒體集成簡介 395
14.2了解Accounts框架 396
14.3了解Social框架 400
14.3.1發帖 401
14.3.2檢索推文 409
14.4與Facebook集成 411
14.5創建單點登錄套用 418
14.6本章小結 423
第Ⅳ部分將套用運用到生產環境中
第15章分析套用 427
15.1執行技術分析 427
15.1.1套用崩潰 428
15.1.2阻止主執行緒 428
15.1.3記憶體泄漏 429
15.1.4使用同步的HTTP請求 429
15.1.5廣泛的頻寬使用率 430
15.1.6電池消耗 434
15.1.7糟糕的用戶界面 436
15.2執行商業分析 436
15.3本章小結 437
第16章從套用中獲利 439
16.1獲利簡介 439
16.1.1付費套用 439
16.1.2廣告 440
16.1.3In-AppPurchases 440
16.1.4訂閱 440
16.1.5潛在客戶開發 440
16.1.6加盟銷售 441
16.2開發In-AppPurchases 441
16.2.1In-AppPurchase簡介 441
16.2.2註冊產品 441
16.2.3選擇產品類型 441
16.2.4了解In-AppPurchase進程 442
16.2.5實現In-AppPurchase 443
16.3從廣告中獲利 464
16.3.1iAd框架簡介 464
16.3.2實現AdMob網路 467
16.4本章小結 470
第17章了解iTunesConnect 471
17.1iOS開發者會員中心 472
17.1.1獲取開發者證書 472
17.1.2管理設備 476
17.1.3管理套用 479
17.1.4創建開發配置檔案 484
17.1.5創建發布配置檔案 488
17.2本章小結 491
第18章構建與發布 493
18.1AppStore審核 493
18.1.1了解審核指南 493
18.1.2了解審核流程 494
18.1.3了解拒絕狀態 496
18.1.4避免各種常見誤區 496
18.2為AdHoc發布構建套用 497
18.2.1 構建套用 497
18.2.2發布後進行測試 499
18.3為AppStore發布構建套用 501
18.4本章小結 507
附錄A音頻代碼 509
附錄B圖片尺寸 513