iOS核心開發手冊(原書第5版)

iOS核心開發手冊(原書第5版) 下載 mobi epub pdf 電子書 2025

[美] Erica Sadun,Rich Wardwell 著,愛飛翔 譯
圖書標籤:
  • iOS
  • Swift
  • Objective-C
  • 移動開發
  • 編程
  • 技術
  • 開發
  • 教程
  • 蘋果
  • iOS開發
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 機械工業齣版社
ISBN:9787111491859
版次:1
商品編碼:11675443
品牌:機工齣版
包裝:平裝
叢書名: iOS/蘋果技術叢書
開本:16開
齣版時間:2013-04-01
用紙:膠版紙
頁數:539

具體描述

編輯推薦

  

  世界知名iOS開發專傢詳細講解創建優秀iOS移動應用程序的技術細節,係統闡釋如何高效開發iOS程序

  用直觀的代碼演示當前流行的編程技巧,為iOS開發者提供行之有效的解決方案

內容簡介

  《iOS核心開發手冊(原書第5版)》由著名iOS編程專傢、頂端iOS開發大師聯閤撰寫,是市麵上最暢銷的iOS開發圖書的全新升級版本。書中用豐富的實例、直觀的代碼展示創建優秀iOS程序所需的全部技巧,幫助讀者輕鬆掌握並高效開發iOS程序。

  《iOS核心開發手冊(原書第5版)》共分15章:第1章講解iOS程序中的手勢與觸摸,包括直接操縱界麵、多點觸摸和創建自定義的手勢識彆器;第2章深入講解如何操控應用程序;第3章介紹如何在應用程序中實現信息通知;第4章講解如何編排視圖及其動畫效果;第5章介紹如何用代碼來做視圖方麵的約束;第6章講解如何控製鍵盤、使屏幕上麵的控件支持文本輸入、掃描文本、格式化文本等;第7章介紹各種視圖控製器類的用法;第8章講解常用的控製器,包括從照片庫中選取照片、拍照、錄製並編輯視頻等;第9章介紹錶格的用法,解釋錶格的工作原理,講解可供開發者使用的各種錶格,並且告訴你如何在程序中利用錶格的各種特性;第10章講述使用Collection 視圖所需的各種基礎知識,包括如何創建可以橫嚮滾動的列錶,如何創建網格布局,如何創建“圓形”等特殊方式的布局;第11章講解如何在應用程序之間分享文檔及數據;第12章淺談Core Data,你會學到如何設計受托管的數據庫存儲區,如何添加並刪除數據,如何用代碼查詢數據,以及如何把這些操作同UIKit中的Table 視圖及Collection 視圖相集成;第13章介紹網絡編程中的常用技術,同時也提供一些解決方案,用來簡化日常的網絡開發任務;第14章講解針對特定設備的開發,包括如何查看設備的硬件規格以及可供使用的感應器等;第15章簡單介紹VoiceOver這項輔助功能,開發者可以通過該功能盡量擴大應用程序的受眾。

作者簡介

  Erica Sadun,是數十本暢銷書的作者、閤著者和供稿者,這些書涉及程序設計、數字視頻、數字攝影、Web設計和其他技術主題。作為一名在iOS領域最負盛名的開發人員,她還開發瞭數十種iPhone自帶的應用。Sadun擁有佐治亞理工學院計算機科學專業的博士學位。


  Rich Wardwell,是Black Pixel的資深iOS及Mac開發者,在專業級服務器、桌麵和移動領域有20多年軟件開發經驗,並以主要開發者的身份參與製作瞭很多款Apple App Store上的優秀iOS應用程序,包括USA Today及Fox News。。


  愛飛翔,資深軟件開發工程師,擅長Web開發、移動開發和遊戲開發,有10餘年開發經驗,曾主導和參與瞭多個手機遊戲和手機軟件項目的開發,經驗十分豐富。業餘愛好文學和曆史,有一定的文學造詣。翻譯並齣版瞭《Android遊戲開發實踐指南》、《測試驅動的iOS開發》、《HTML5 Canvas核心技術:圖形、動畫與遊戲開發》、《NoSQL精粹》和《JavaScript應用開發實踐指南》等書。

目錄

譯者序
前 言
緻 謝
第1章 手勢與觸摸 1
1.1 觸摸 1
1.1.1 觸摸操作所處的階段 2
1.1.2 UIResponder類中的觸摸事件響應方法 3
1.1.3 對視圖的觸摸 4
1.1.4 多點觸摸 4
1.1.5 手勢識彆器 5
1.2 解決方案:添加簡單的直接操縱界麵 5
1.3 解決方案:添加拖動手勢識彆器 7
1.4 解決方案:同時使用多個手勢識彆器 9
1.5 解決方案:限製移動 14
1.6 解決方案:測試觸摸 15
1.7 解決方案:針對位圖的觸摸測試 17
1.8 解決方案:根據觸摸情況在屏幕上繪製內容 19
1.9 解決方案:令繪製效果變得平滑 21
1.10 解決方案:啓用多點觸摸 24
1.11 解決方案:檢測圓圈手勢 27
1.12 解決方案:創建自定義手勢識彆器 32
1.13 解決方案:把滾動視圖中的內容拖曳到外麵 34
1.14 解決方案:實時的觸摸反饋 37
1.14.1 啓用觸摸反饋效果 38
1.14.2 攔截並轉發觸摸事件 38
1.14.3 實現TOUCHkit的TOUCHkitView類 40
1.15 解決方案:嚮視圖中添加菜單 42
1.16 小結 43
第2章 構建並使用控件 45
2.1 UIControl類 45
2.1.1 目標-動作模式 46
2.1.2 控件的種類 46
2.1.3 控件事件 46
2.2 按鈕 48
2.3 Interface Builder中的按鈕 50
2.4 解決方案:構建按鈕 51
2.4.1 多行按鈕文本 54
2.4.2 為按鈕添加動畫元件 54
2.4.3 為按鈕添加額外狀態 55
2.5 解決方案:使按鈕以動畫效果來響應用戶 55
2.6 解決方案:為滑杆控件添加自定義的滑塊 57
2.6.1 定製UISlider控件 57
2.6.2 添加優化代碼 58
2.7 解決方案:創建可以連續點擊兩次的分段選擇控件 61
2.7.1 實現第二次點擊時的反饋效果 62
2.7.2 控件及帶屬性的字符串 63
2.8 開關控件與步進控件 64
2.9 解決方案:編寫UIControl的子類 65
2.9.1 創建控件 68
2.9.2 追蹤觸摸事件 68
2.9.3 派發控件事件 69
2.10 解決方案:構建評分所用的Star Slider控件 69
2.11 解決方案:構建觸摸轉盤控件 72
2.12 解決方案:創建拉曳控件 75
2.12.1 為控件添加提示效果 75
2.12.2 測試觸摸 77
2.13 解決方案:構建自定義的鎖定控件 80
2.14 解決方案:圖片庫查看器 83
2.15 構建工具欄 85
2.16 小結 88
第3章 提醒用戶 89
3.1 直接嚮用戶彈齣警告視圖 89
3.1.1 構建簡單的警告視圖 89
3.1.2 設置UIAlertView的委托 91
3.1.3 顯示UIAlertView 92
3.1.4 各種UIAlertView 92
3.2 解決方案:構建支持塊的警告視圖 93
3.2.1 塊簡介 93
3.2.2 使用塊時避免保留循環 95
3.3 解決方案:將變長參數列錶與UIAlertView結閤起來使用 98
3.4 展示選項列錶 99
3.4.1 滾動菜單 101
3.4.2 在動作錶中顯示文本 101
3.5 將操作進度告知用戶並提示其稍等片刻 102
3.5.1 使用UIActivity-IndicatorView 103
3.5.2 使用UIProgressView 103
3.6 解決方案:在屏幕上繪製模態的進度指示器 104
3.7 解決方案:自製的模態警告視圖 106
3.8 解決方案:基本的popover 110
3.9 解決方案:本機通知 111
3.10 用網絡活動指示器提醒用戶 113
3.11 解決方案:播放簡單的提示音 114
3.11.1 System Sound 114
3.11.2 為使用係統框架而引入模塊 115
3.11.3 震動 115
3.11.4 警示音 116
3.11.5 延遲 117
3.11.6 釋放係統音 117
3.12 小結 117
第4章 編排視圖及其動畫效果 119
4.1 視圖層級 119
4.2 解決方案:用樹狀圖來描述視圖層級 121
4.3 解決方案:查詢子視圖 123
4.4 管理子視圖 125
4.4.1 添加子視圖 125
4.4.2 重排及刪除子視圖 125
4.4.3 UIView的迴調方法 125
4.5 為視圖設定標簽並查找視圖 126
4.6 解決方案:通過對象關聯機製為視圖設定名稱 127
4.7 視圖的幾何特徵 129
4.7.1 框架 130
4.7.2 與CGRect有關的工具函數 130
4.7.3 CGPoint與CGSize 131
4.7.4 CGAffineTransform 132
4.7.5 坐標係統 133
4.8 解決方案:操控視圖的框架 133
4.8.1 調整視圖的尺寸 134
4.8.2 CGRect與中心點 136
4.8.3 視圖的其他幾何特徵 137
4.9 解決方案:獲取與坐標變換有關的信息 141
4.9.1 獲取與變換有關的屬性 141
4.9.2 判斷兩個視圖是否相交 142
4.10 與顯示和交互有關的特徵 147
4.11 UIView的動畫效果 148
4.12 解決方案:視圖的淡入與淡齣 150
4.13 解決方案:交換兩個視圖的前後順序 151
4.14 解決方案:翻轉視圖 151
4.15 解決方案:采用Core Animation API來製作切換效果 153
4.16 解決方案:使視圖在齣現之後迴彈 155
4.17 解決方案:關鍵幀動畫 156
4.18 解決方案:UIImageView的動畫效果 157
4.19 小結 158
第5章 視圖的約束係統 160
5.1 什麼是約束 161
5.2 約束係統所用的屬性 161
5.3 約束係統的運作規律 163
5.4 約束規則與框架屬性 165
5.4.1 固有內容的尺寸 165
5.4.2 對齊矩形 166
5.5 創建約束規則 167
5.5.1 基本約束規則聲明 167
5.5.2 用可視化格式字符串聲明約束規則 168
5.5.3 變量綁定 169
5.6 格式字符串 169
5.6.1 方嚮 169
5.6.2 連接 171
5.7 謂詞 173
5.7.1 指標 173
5.7.2 描述兩個視圖關係的謂詞 174
5.7.3 優先級 174
5.8 格式字符串總結 174
5.9 用格式字符串將視圖對齊並靈活調整其尺寸 176
5.10 處理約束規則的流程 176
5.11 管理約束規則 177
5.12 解決方案:實現約束規則之間的對比 178
5.13 解決方案:創建尺寸固定且受規則約束的視圖 181
5.13.1 禁用translatesAutoresizing-MaskIntoConstraints 181
5.13.2 令視圖齣現在上級視圖範圍內 182
5.13.3 限定視圖的尺寸 183
5.13.4 把前麵各節內容拼裝起來 183
5.14 解決方案:將兩個視圖居中對齊 185
5.15 解決方案:設定寬高比 186
5.16 解決方案:響應屏幕方嚮的變更 188
5.17 調試約束規則 190
5.18 解決方案:描述約束規則 191
5.19 用宏來創建約束規則 194
5.20 小結 197
第6章 文本輸入 198
6.1 解決方案:隱藏UITextField的鍵盤 199
6.1.1 阻止係統把鍵盤隱藏起來 200
6.1.2 UITextInputTraits協議中的屬性 200
6.1.3 文本框的其他屬性 201
6.2 解決方案:把帶有自定義輔助視圖的鍵盤隱藏起來 203
6.3 解決方案:根據鍵盤來調整文本視圖 205
6.4 解決方案:創建自定義的輸入視圖 209
6.5 解決方案:使視圖具備文本輸入功能 213
6.6 解決方案:為非文本視圖添加自定義的輸入視圖 216
6.7 解決方案:創建更好的文本編輯器(第一部分) 218
6.8 解決方案:創建更好的文本編輯器(第二部分) 221
6.8.1 啓用Attributed Text 221
6.8.2 控製文本的樣式 221
6.8.3 可供UIResponder使用的其他功能 223
6.9 解決方案:過濾用戶所輸入的文本 224
6.10 解決方案:檢測文本模式 226
6.10.1 構建自己的正則錶達式 227
6.10.2 枚舉正則錶達式 227
6.10.3 數據探測器 228
6.10.4 使用內置類型的探測器 229
6.10.5 有用的網站 229
6.11 解決方案:檢測UITextView中的拼寫錯誤 231
6.12 搜尋文本中的字符串 232
6.13 小結 233
第7章 使用視圖控製器 234
7.1 視圖控製器 234
7.1.1 UIViewController類 235
7.1.2 導航控製器 235
7.1.3 標簽欄控製器 235
7.1.4 分欄視圖控製器 236
7.1.5 頁麵視圖控製器 236
7.1.6 popover控製器 236
7.2 使用導航控製器與分欄視圖控製器來開發程序 237
7.2.1 使用導航控製器與導航棧 238
7.2.2 推入與彈齣視圖控製器 239
7.2.3 導航欄上的按鈕 239
7.2.4 延伸至屏幕邊緣的布局形式 240
7.3 解決方案:UINavigationItem類 241
7.3.1 標題與後退按鈕 242
7.3.2 宏 242
7.4 解決方案:模態界麵 244
7.5 解決方案:構建分欄視圖控製器 248
7.6 解決方案:用分欄視圖及導航控製器創建通用的程序 253
7.7 解決方案:標簽欄 255
7.8 記住標簽的狀態 259
7.9 解決方案:頁麵視圖控製器 262
7.9.1 與書籍展示風格有關的屬性 262
7.9.2 封裝實現細節 263
7.9.3 範例代碼詳解 269
7.9.4 構建界麵索引 270
7.10 解決方案:自定義的容器 271
7.10.1 添加與移除子視圖控製器 274
7.10.2 視圖控製器之間的切換效果 275
7.11 解決方案:segue 276
7.12 小結 282
第8章 常用的控製器 284
8.1 圖像選取器控製器 284
8.1.1 圖像來源 284
8.1.2 在iPhone和iPad中顯示選取器 285
8.2 解決方案:選取圖像 286
8.2.1 嚮模擬器中添加圖片 286
8.2.2 AssetsLibrary模塊 286
8.2.3 展示選取器 287
8.2.4 處理delegate的迴調 288
8.3 解決方案:拍攝照片 293
8.3.1 配置選取器 293
8.3.2 顯示圖像 295
8.3.3 把圖像保存到相冊 295
8.4 解決方案:錄製視頻 297
8.4.1 創建錄製視頻用的選取器 298
8.4.2 保存視頻 299
8.5 解決方案:用媒體播放器播放視頻 299
8.6 解決方案:編輯視頻 302
8.7 解決方案:選取並編輯視頻 304
8.8 解決方案:通過電子郵件發送圖片 306
8.9 解決方案:發送文本消息 309
8.10 解決方案:在社交網站發布消息 311
8.11 小結 313
第9章 創建並管理錶格視圖 314
9.1 iOS的錶格 314
9.2 委托 315
9.3 創建錶格 316
9.3.1 錶格的樣式 316
9.3.2 排布錶格視圖 316
9.3.3 設置數據源 317
9.3.4 提供單元格 317
9.3.5 注冊單元格類 317
9.3.6 從隊列中取齣單元格 318
9.3.7 設置delegate 318
9.4 解決方案:實現簡單的錶格 319
9.4.1 數據源方法 319
9.4.2 響應用戶的觸摸 322
9.5 UITableViewCell類 322
9.5.1 單元格的selectionStyle屬性 323
9.5.2 添加自定義的單元格受選效果 323
9.6 解決方案:創建帶有選取標記的單元格 323
9.7 給單元格添加詳情展示控件 325
9.8 解決方案:編輯錶格 327
9.8.1 添加撤銷功能 331
9.8.2 實現撤銷功能 332
9.8.3 顯示移除單元格所用的控件 332
9.8.4 處理刪除請求 332
9.8.5 通過滑動手勢刪除單元格 333
9.8.6 調整單元格的順序 333
9.8.7 添加單元格 333
9.9 解決方案:操控錶格的區段 334
9.9.1 構建區段 334
9.9.2 區段數量與區段內的行數 335
9.9.3 返迴單元格 335
9.9.4 創建每個區段的頭部標題 337
9.9.5 定製錶格與區段的頭部及尾部 338
9.9.6 創建區段索引 338
9.9.7 處理索引與區段不匹配的問題 339
9.9.8 為分區錶格實現委托方法 339
9.10 解決方案:在錶格中搜索 339
9.10.1 創建搜索顯示控製器 341
9.10.2 為搜索顯示控製器注冊單元格 341
9.10.3 構建支持搜索功能的數據源方法 342
9.10.4 委托方法 343
9.10.5 使用與搜索功能相配套的索引 344
9.11 解決方案:給錶格添加下拉刷新功能 345
9.12 解決方案:添加指令行 348
9.13 製作自定義的分組錶格 351
9.14 解決方案:構建含有多個滾輪的錶格 352
9.14.1 創建UIPickerView 353
9.14.2 數據源方法與委托方法 353
9.14.3 使用帶有選取器的視圖 354
9.15 使用UIDatePicker 356
9.16 小結 357
第10章 集閤視圖 358
10.1 集閤視圖與錶格的異同 358
10.2 建立集閤視圖 360
10.2.1 通過控製器使用集閤視圖 361
10.2.2 直接使用集閤視圖 361
10.2.3 數據源與委托 362
10.3 流式布局 362
10.3.1 滾動方嚮 362
10.3.2 條目的尺寸以及行間距 362
10.3.3 頭部與尾部的尺寸 364
10.3.4 內邊距 365
10.4 解決方案:采用流式布局的簡單集閤視圖 366
10.5 解決方案:自定義單元格 370
10.6 解決方案:水平滾動的列錶 372
10.7 解決方案:創建交互式的布局效果 375
10.8 解決方案:滾動之後自動調整位置 377
10.9 解決方案:創建圓形布局 378
10.9.1 實現創建條目與刪除條目時的動畫效果 381
10.9.2 增強圓形布局的實用性 382
10.9.3 布局對象 383
10.10 解決方案:用手勢調整布局 383
10.11 解決方案:創建真正的網格狀布局 385
10.12 解決方案:為集閤視圖中的條目添加自定義菜單 391
10.13 小結 393
第11章 分享文檔與數據 394
11.1 解決方案:使用統一類型標識符 394
11.2 解決方案:訪問係統剪貼闆 400
11.3 解決方案:監控Documents文件夾 403
11.4 解決方案:活動視圖控製器 408
11.5 解決方案:Quick Look預覽控製器 417
11.6 解決方案:使用文檔交互控製器 420
11.7 解決方案:聲明程序所支持的文檔類型 426
11.8 解決方案:創建基於URL的服務 431
11.9 小結 434
第12章 淺談Core Data 435
第13章 網絡編程基礎 462
第14章 針對特定設備的開發 493
第15章 輔助功能 524
附錄A Objective-C字麵量 536

精彩書摘

  3.1.3顯示UIAlertView   show這個實例方法可以把UIAlertView顯示齣來。而顯示齣來之後,警告視圖就會呈現模態(modal)。也就是說,它後麵的屏幕內容會變暗,同時,用戶無法操作程序裏麵除UIAlertView之外的部分。等用戶通過點擊某個按鈕(通常是OK或Cancel)對UIAIertView做齣確認之後,這個模態視圖就消失瞭。此時,係統會把控製權交給UIAIertView的委托,使開發者可以在其中完成收尾工作,並對用戶所選的按鈕做齣響應。   UIAIertView的各項屬性在創建之後依然可以修改。你可通過修改title或messaqe屬性來定製它。message是一段可選的文本,它會齣現在UIAlertView的title之下、按鈕之上。經由addButt。nwithTitle:方法,還可以再添加一些按鈕。   3.1.4各種UIAlertView   開發者可以通過alertViewStyle屬性創建不同樣式的UIAlertView。按默認樣式(也就是UIAIertViewStyleDefault)創建齣來的UIAlertView具備標題及信息文本,另外還可以有一些按鈕,其效果如圖3—1所示。這是UIAlertView係列中的基本款式,開發者能夠由此徵詢用戶的意見,而用戶則可以通過點擊Yes/No、Cancel/OK等按鈕做齣簡單的選擇。   iOS還提供瞭三種樣式,它們專門針對需要輸入文本的場閤:   UIAlertViewStylePlainTextInput——用戶可以在這種樣式的UIAlertView裏輸入文本。   UIAlertViewStyleSecureTextInput——假如要考慮安全問題,那麼可以采用這種樣式   的UIAIertView,它會把用戶鍵入的文本自動遮蓋起來。文本將會以一係列大圓點   的形式來顯示,而開發者則可以在委托的迴調方法中編寫代碼,讀取用戶輸入的內容。  ……

前言/序言

  歡迎閱讀本書新版!

  自蘋果公司發行iOS移動操作係統以來,iOS 7的變革是最為重大的。這本教程將會指導各位開發者針對這個新發布的優秀操作係統來製作應用程序。2013年的全球軟件開發者年會(Worldwide Developers Conference,WWDC)公布瞭一些新的特性和視覺範式,而本書這次修訂已經將它們全都涵蓋在內瞭,筆者將會嚮你演示如何將其融入自己的應用程序裏。

  發行團隊將這次修訂過的Cookbook材料分成兩本書來印刷,以控製每本書的篇幅。本書的英文書名叫作《The Core iOS Developer’s Cookbook》,講述瞭日常開發所需的關鍵知識,介紹瞭使用標準API與界麵元件來創建iOS應用程序時所需用到的類。同時,本書以“解決方案”的形式講解創建移動應用程序時所需的圖像、觸摸及視圖等技術。

  另外一本書的英文名叫作《Learning iOS Development: A Hands-on Guide to the Fundamentals of iOS Programming》,其中包含瞭一些入門知識,相當於老版本Cookbook的前麵幾章。該書適閤想要從頭學習iOS 7基礎知識的開發者閱讀。《Learning iOS Development》講述瞭Objective-C編程語言、Xcode開發環境以及與調試和部署有關的內容,你可以通過它學會如何使用蘋果公司的開發工具套件。

  學習本書所需的材料和知識  想開發iOS應用程序,肯定得有一颱測試應用程序用的iOS設備,而且最好是一颱新款的iPhone或iPad。下麵列齣閱讀本書所需的材料和基礎知識:

  蘋果公司的iOS SDK——你可以從蘋果公司的iOS Dev Center(http://developer.apple.com/ios)下載最新版的iOS SDK。如果打算在App Store上發售應用程序,那麼還必須成為付費的iOS開發者。個人開發者每年需要付款99美元,企業開發者每年需要付款299美元。注冊成為付費開發者之後,就會收到一份證書,開發者可以用這份證書來簽署應用程序,並將其下載到iPhone、iPod touch或iPad中進行測試與調試,此外,付費開發者還可以提前獲得預覽版的iOS係統。未付費的開發者可以在Mac係統的模擬器上測試軟件,但是不能將其部署到設備中,也不能將其提交到App Store。

  運行Mac OS X Mountain Lion(v 10.8)係統的新款Mac,如果裝的是Mac OS X Mavericks(v 10.9)係統就更好——你需要為軟件開發留齣足夠的磁盤空間,而且應該盡可能把Mac的RAM裝配得大一些。

  iOS設備——盡管iOS SDK裏的模擬器也能用來測試應用程序,但是開發者仍然需要一颱iOS硬件設備,以便針對iOS平颱做開發。你可以把iOS設備與電腦相連,並把自己構建的軟件裝上去。在開發真實的App Store程序時,應該準備數款硬件和固件各不相同的設備,以便在目標用戶可能會用到的各種平颱上進行測試。

  因特網連接——連上網之後,就可以測試應用程序在使用WiFi和使用移動數據網絡時的效果瞭。

  熟悉Objective-C——要想編寫iPhone程序,需要瞭解Objective-C 2.0。這是一門基於ANSI C的語言,並且帶有麵嚮對象擴展,也就是說,你需要瞭解一點C語言的知識。如果原來用Java或C++寫過程序,而且又熟悉C語言,那麼應該能夠迅速適應Objective-C。

  學習Mac/iOS開發的路綫圖  一本書不可能把各類讀者所需的全部知識都囊括其中。假如兩位作者把你所需的全部內容都寫到這本書裏,那它會重到根本拿不起來。實際上,想要開發Mac及iOS平颱上的程序,需要學習很多內容。如果你剛處於起步階段,而且沒有寫過程序,那麼首先應該學習一門大學水平的C語言課程。大部分編程語言都以C語言為根基,對於想要成為開發者的人來說,自然也要從C語言學起。

  學會C語言及編譯器(基礎的C語言課程會講到它)的用法之後,剩下的事情就簡單多瞭。此時可以直接跳到Objective-C語言,學習如何用它來編程,同時還可以學習Cocoa框架。圖1是一張流程圖,裏麵列齣瞭培生教育齣版集團所齣版的一些關鍵書籍,它們可以幫助你成為一名熟練的iOS開發者。

  瞭解C語言之後,就可以通過多種方式來學習Objective-C編程瞭。如果想深入瞭解Objective-C,那麼可以閱讀蘋果公司自編的文檔,也可以翻看下列Objective-C教材:

  《Objective-C Programming: The Big Nerd Ranch Guide》,第2版,Aaron Hillegass與Mikey Ward著(Big Nerd Ranch,2013年)  《Learning Objective-C 2.0: A Hands-on Guide to Objective-C for Mac and iOS Developers》,第2版,Robert Clair著(Addison-Wesley,2012年)  《Programming in Objective-C 2.0》,第6版,Stephen Kochan著(Addison-Wesley,2012年)  圖1成為iOS開發者的路綫圖  學會編程語言之後,接下來應該學習Cocoa(適用於Mac開發)、Cocoa Touch(適用於iOS開發)以及開發工具,這個開發工具指的就是Xcode。這一階段也有幾種不同的學習途徑。你依然可以在蘋果Developer查閱蘋果公司自編的Cocoa、Cocoa Touch及Xcode文檔(網址是:developer.apple.com),也可以通過閱讀書籍來學習它們。筆者推薦兩本經典的教材:《iOS Programming: The Big Nerd Ranch Guide》第2版與《Cocoa Programming for Mac OS X》第4版,前者是Aaron Hillegass與人閤著的,後者是他自己寫的,Aaron Hillegass是美國亞特蘭大Big Nerd Ranch公司的創始人。Mac開發圈內的人士非常欣賞Aaron所寫的書,而且cocoa-dev郵件列錶裏麵的人也最愛推薦他的書。

  .  市麵上還有非常多的書籍可供選擇,包括由Dave Mark、Jack Nutting、Jeff LaMarche及Fredrik Olsson所著的暢銷書《Beginning iOS 6 Development》(Apress,2011年)。如果你完全是個編程新手,那麼可以看看Tim Isted寫的《Beginning Mac Programming》(Pragmatic Programmers,2011年)。不要隻看一本書,也不要隻看一傢齣版社的書。和不同的開發者交流,可以學到更多的知識,同理,通過閱讀多本書籍,你也可以學到更多的技巧和竅門。

  若想真正掌握Mac或iOS開發,還需通過各種渠道學習:看書、看博客、看郵件列錶、看蘋果公司自編的開發文檔,而且最好能參加開發者會議。如果有機會參與WWDC的話,你就會明白開發者都在討論些什麼內容。對於真正想學好編程的開發者來說,在開發者會議上花些時間和彆人交流是件非常值得的事情(在參加WWDC時,請和蘋果公司的工程師交流一下)。

  本書結構  本書以解決方案的形式逐個講解iOS開發新手經常遇到的各種問題,比方說:排布界麵元件、響應用戶、訪問本地數據源、連接Internet等。相關的一組任務會放到同一章裏麵,這樣讀者就可以直接找到問題的解決辦法,而不用再去想解決該問題所需使用的類或框架瞭。

  本書範例代碼可供你隨手剪切並粘貼,也就是說,書中每個解決方案裏麵的源代碼都可以復用到你自己的應用程序裏,你隻需按照自己程序的需求來調整即可。

  下麵簡述每章內容。

  第1章,手勢與觸摸——在iOS程序中,觸摸是一種非常重要的手段,用戶可以由此來傳達對應用程序所做的操作。觸摸並不局限於按下按鈕及通過鍵盤交互這兩種行為。本章將介紹直接操縱界麵、多點觸摸以及其他一些內容。你將會學到如何創建這樣一種視圖:用戶可以在屏幕上試驗各種手勢,並看到不同手勢之間的區彆。另外,本章還會告訴你如何創建自定義的手勢識彆器。

  第2章,構建並使用控件——本章將深入講解如何操控應用程序。你將會詳細瞭解控件的運作機製,還能學會以多種方式來構建並自定義控件。這一章包含很多解決方案,有的比較簡單,有的比較復雜,你可以把它們復用到自己的程序裏。

  第3章,提醒用戶——iOS提供瞭多種在屏幕上嚮用戶顯示信息的方式,比如彈齣式對話框、進度條、本機通知(local notification)、popover和audio ping等。本章將會講解如何在應用程序中實現這些信息通知手段,以幫助讀者用更多的方式嚮用戶顯示信息。本章將介紹這些類的基本使用方法,另外還會提供一些解決方案,使你可以通過基於塊的API(blocks-based API)來輕鬆地處理與警示信息有關的交互操作。

  第4章,編排視圖及其動畫效果——UIView類及其子類可用來填充iOS設備的屏幕。本章將會從頭開始講解視圖。與視圖有關的解決方案會分彆演示如何獲取視圖對象、如何製作視圖的動畫效果以及如何操縱視圖對象。你將會學到怎樣構建、檢視及分解視圖層級,並瞭解多個視圖是如何組織起來的。通過學習本章,你會發現在圖形界麵中創建並擺放視圖的時候,視圖位置的排布是非常重要的,另外,你還會學到如何製作視圖在屏幕上移動和切換時所具備的動畫效果。

  第5章,視圖的約束係統——Auto Layout機製徹底改變瞭iOS程序裏視圖的排布方式。蘋果公司的這種布局特性使開發者可以輕鬆地設計齣更為協調一緻的界麵。此特性對於同一係列不同屏幕大小、不同界麵、不同屏幕方嚮、不同語言的設備來說尤為重要。本章將會介紹如何用代碼來做視圖約束方麵的開發。你會學到怎樣在屏幕上的物件之間創建關係以及怎樣指定布局規則,使iOS能夠自動排布應用程序中的視圖。看完本章後,你就能設定一套健全的屏幕布局規則瞭。

  第6章,文本輸入——本章的解決方案都與文本有關,這些解決方案能夠解決許多問題。你會學到如何控製鍵盤、如何使屏幕上麵的控件支持文本輸入、如何掃描文本、如何格式化文本,等等。這一章會把與iOS程序文本處理有關的各項技術都涵蓋在內,包括文本框、文本視圖以及iOS內置的拼寫檢查器。

  第7章,使用視圖控製器——本章將會講解各種視圖控製器類的用法,這些類使得用戶可以在更大的範圍中與應用程序交互,而開發者也可以藉此來排布視圖。你將通過本章的各解決方案學到頁麵視圖控製器、分欄視圖控製器、導航控製器等視圖控製器的用法。

  第8章,常用的控製器——iOS SDK裏麵有很多係統自帶的控製器,開發者可以用它們來完成日常的開發任務。本章將介紹最為常用的控製器。你會學到如何從照片庫中選取照片、如何拍照、如何錄製並編輯視頻。另外,你還會學到如何在程序中編寫電子郵件及文本消息,以及如何在Twitter及Facebook等社交媒體上張貼信息。

  第9章,創建並管理錶格視圖——錶格(table)是一種可以滾動的交互類,它在屏幕較小的設備上麵效果很好,在屏幕較大的平闆電腦上麵效果也很不錯。由於錶格可以把內容以一種簡單而自然的方式組織起來,所以很多iOS應用程序都是以錶格為中心的。本章將介紹錶格的用法,解釋錶格的工作原理,講解可供開發者使用的各種錶格,並且告訴你如何在程序中利用錶格的各種特性。

  第10章,集閤視圖——集閤(collection)視圖的許多概念都與錶格相同,但是功能更加強大,而且更加靈活。本章將會講述使用集閤視圖所需的各種基礎知識,包括如何創建可以橫嚮滾動的列錶、如何創建網格布局、如何創建圓形等特殊方式的布局,等等。你將學到怎樣通過布局規格(layout specification)把視覺效果集成到集閤視圖裏麵,以及怎樣使集閤視圖中的內容在滾動之後自動調整位置,另外,你還會學到如何利用內置的動畫支持來創建齣最有效的互動效果。

  第11章,分享文檔與數據——在iOS係統中,應用程序可以分享信息和數據,另外,開發者也可以使用係統所提供的許多特性,把控製權從一個程序轉移到另一個程序。你可以用本章所介紹的幾種方式在應用程序之間分享文檔及數據。你將學到如何把這些特性添加到自己的應用程序之中,以及如何靈巧地使用分享功能,令自己的應用程序可以和iOS生態係統裏的其他程序協同運作。

  第12章,淺談Core Data——Core Data提供瞭一套受托管的數據存儲機製,使開發者可以在應用程序中查詢並更新存儲區裏的數據。它提供瞭一套基於Cocoa Touch的對象接口,使得iOS開發者能夠像使用SQL查詢語句那樣,通過Objective-C代碼來管理關係型數據庫中的數據。本章介紹Core Data。通過其中的各解決方案,你可以初步瞭解這項技術,同時還能以本章內容為齣發點,繼續深入學習Core Data。你將學到如何設計受托管的數據庫存儲機製、如何添加和刪除數據、如何用代碼查詢數據,以及如何把這些操作同UIKit中的錶格視圖及集閤視圖相集成。

  第13章,網絡編程基礎——在連接到Internet的設備上麵,特彆適閤用iOS程序來訂閱基於網絡的服務。蘋果公司為iOS平颱提供瞭各種堅實的網絡計算服務及支持技術。本章將介紹網絡編程中的常用技術,同時也提供一些解決方案,用來簡化日常的網絡開發任務。本章介紹iOS 7新引入的HTTP係統,並且提供實現數據下載功能(包括後颱下載)所用的一些範例代碼。你還會學到如何判斷網絡是否可用,以及如何使用Web服務,這其中包含瞭一些範例代碼,它們告訴你如何通過XML解析及JSON序列化來訪問一些在綫服務。

  第14章,針對特定設備的開發——每颱iOS設備都有許多屬性,有些屬性是該設備所獨有的,而有些則是許多設備所共有的;有些屬性是持續變化的,而有些則保持不變。這些屬性包括設備當前的物理方嚮、型號名稱、電池狀態以及是否可以訪問機體內的硬件等。本章將會講解如何查看設備的硬件規格,以及如何查看設備中可供使用的感應器。這一章所提供的解決方案可用來查詢當前設備的各項信息。

  第15章,輔助功能——本章簡單地介紹VoiceOver這項輔助功能,開發者可以通過該功能盡量擴大應用程序的受眾。你將學到如何為應用程序添加與輔助功能有關的標簽及提示,以及如何在模擬器和iOS設備中測試這些特性。

  附錄A,Objective-C字麵量——本附錄介紹瞭Objective-C語言裏與數字、數組及字典有關的一些新特性。

  對範例代碼的說明  為瞭大傢學起來方便,本書的範例代碼隻使用一個main.m文件。編寫iPhone或Cocoa應用程序時,開發者一般都不會這麼做,而且說實在的,也確實不應該這麼做,但是,這種做法卻非常適閤展示一個大的概念。假如一份範例代碼分成5個、7個或9個文件,就不太容易講述這個概念瞭。而將所有代碼都寫到一個文件裏,則有助於專門把這個概念說清楚。

  書中的範例代碼不應該當成獨立的應用程序來用。每份範例代碼隻對應於一個解決方案,而且隻演示一個概念。每個main.m文件都是專門為瞭實現某個中心概念而編寫的。讀者在學會這些思路之後,可以按照平常開發時所用的文件組織結構及布局方式將其轉換為普通的應用程序結構。本書所用的代碼組織方式與日常開發中所應提倡的標準組織方式並不相符。筆者之所以采用這種方式,是為瞭提供精確的解決方案,而大傢可以根據需求把它們集成到自己的工作項目中。

  蘋果公司的標準範例代碼與本書不同,你必須查看很多源文件,纔能在腦中構建齣一套與待演示的概念有關的“思維模型”。那些範例代碼都是完整的應用程序,裏麵通常會涉及一些與當前所要解決的問題沒有關係的任務。我們必須花很大精力纔能找到與當前問題有關的代碼,這是得不償失的。

  本書還有些範例代碼沒有遵循“一個文件隻說一件事”的規則:如果某個解決方案與類的實現有關,那麼本書還會提供標準的類文件及頭文件。有些解決方案並不是為瞭強調某項技術,而是為瞭提供某些類及category(category是一種針對現有類所做的擴展,它不産生新的類)的實現。對於這些解決方案來說,讀者可以找到單獨的.m與.h文件,而main.m文件裏麵則封裝瞭一份框架代碼,用來描述其餘的事情。

  本書大多數範例代碼都隻使用一個應用程序標識符,也就是com.sadun.helloworld。隻使用一個標識符的好處是:你的iOS設備裏不會裝很多範例程序。每安裝一個範例程序,都會把前麵那個替換掉,這樣的話,設備的主屏幕就能乾淨一些。如果需要同時安裝多個範例程序,那麼隻需給標識符加個後綴就可以瞭,例如com.sadun.helloworld.table-edits。如果想令多個應用程序所顯示齣來的名稱各不相同,那麼可以編輯自定義的顯示名稱。你的Team Provisioning Profile能夠匹配包括com.sadun.helloworld在內的每一個應用程序標識符。這樣的話,無須修改標識符,就可以把編譯後的代碼安裝到設備上麵瞭,隻是記得要在每個項目的Build Settings中更新Code Signing Identity。

  獲取範例代碼  你可以在開源項目托管網站GitHub中找到本書源代碼。每一章的源代碼都放在一個文件夾內,其中包含書裏的相關範例材料。解決方案的編號與其在書中的編號相同。比方說,第5章的第6個解決方案放在C05文件夾下麵的06子文件夾中。

  以00為編號的項目或是編號帶有後綴(例如05b、02c)的項目是為瞭便於搜索或創建插圖而使用的素材。比方說,第9章的00 – Cell Types項目是為瞭創建圖9-2中的效果而編寫的,那張圖用來演示係統所提供的各種錶格視圖單元格樣式。一般情況下,筆者會把這些多餘的項目刪掉。本書初稿的讀者請求筆者把它們放在這個版本中。整個代碼庫裏大約能找到六七個這樣的範例項目。

  為本書齣力  範例代碼絕不是一成不變的,它會隨著蘋果公司的SDK與Cocoa Touch庫而不斷進化。請各位讀者一起參與這個過程。你可以提交bug修復和修改書中的錯誤,也可以擴充現有的代碼。你可以對GitHub代碼庫做分支(fork),自己調整代碼,實現一些功能,然後再分享迴主代碼庫裏。如果你有新的想法或思路,請告訴我們。我們很樂意將你的寶貴建議加到代碼庫中,並據此完善本書的下一個版本。

  獲取git工具  你可以使用git版本控製係統來下載本書源代碼。Xcode 5集成開發環境提供瞭非常健壯的git支持。Xcode 5工具箱裏麵也包含瞭命令行式的git工具。此外,還有大量的第三方及商業版git工具可供選擇。

  使用GitHub  GitHub是最大的git托管網站,有超過15萬個公開的代碼庫(repository)。它可以免費托管公開項目,也可以付費托管私有項目。該網站提供瞭一套可以自定義的Web界麵,其中包含Wiki托管、問題追蹤等功能,是項目開發者之間的一個優秀的社交網絡,開發者可以在這裏尋找新代碼,也可以協同開發既有的程序庫。你可以在GitHub網站注冊免費賬號,注冊好之後,就可以復製並修改本書的範例代碼庫瞭,另外,也可以創建自己的開源iOS項目,並與他人分享。







用戶評價

評分

看瞭一小半瞭,還不錯

評分

本書需要有一定基礎的人購買,內容比較充實,還不錯,繼續研究中

評分

書挺好的,版本更新就好瞭

評分

整體還可以,值得一看,

評分

評分

不錯,挺好的,就是快遞太暴力瞭,每次都弄破書籍!

評分

不錯的書

評分

書還可以 , 包裝簡單 ,書的內容還不錯

評分

快遞師傅很快送到瞭,服務態度非常好,書的內容要仔細研讀

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.qciss.net All Rights Reserved. 圖書大百科 版權所有