iphone3開發基礎教程

iphone3開發基礎教程

《iPhone 3開發基礎教程》是人民郵電出版社出版的圖書,作者是人民郵電出版社。

基本信息

編輯推薦

創造銷售奇蹟的經典著作,針對iphone sdk3新特性全面改版,從這裡,擁抱軟體開發的未來。

Apple公司的iPhone開創了移動平台新紀元!而最新版iPhone 3做了不少改進,如強化應用程式對GPS的支持,還增加了眾多新功能,如全系統搜尋、支持複製和貼上、收發多媒體信息等。iPhone 3與App Store的絕配為全世界的程式設計師提供了一個施展才華的全新大舞台。只要有新奇的創意,你完全有可能像開發iShoot遊戲的Ethan Nicholas(日收入2萬多美元)和開發Trism遊戲的Steve Demeter(月收入超過10萬美元)那樣,單槍匹馬即可贏得全球市場,成功創業,改變自己的人生。

上一版英文原版問世以來在Amazon計算機圖書排行榜持續雄踞榜首。總排名一度在20名左右,被奉為經典。而中文版出版後也迅速榮登各大網店排行榜榜首,並創造了半年內印刷四次的銷售奇蹟。書中從至UApple網站註冊賬號,下載和安裝免費iPhone SDK開始,清晰透徹地講述了創建iPhone應用程式的全過程。作者在探討基本概念和各個關鍵特性(iPhone界面元素、數據保存、SQLite3、Quartz和OpenGL ES、手勢支持、本地化、Core Location等)時,提供了豐富的實例。更難得的是,本書始終強調iPhone開發中的各種最佳實踐,即使是有經驗的開發人員,也

會因此受益匪淺。本書新版針對iPhone SDK 3做了大幅修訂,力求使新老讀者都能覺得物有所值。作者在糾正上一版錯誤的基礎上,不僅更新了所有項目代碼,使之兼容新舊SDK,還新增了不少內容,進一步闡明一些讀者反饋的比較難懂的主題。此外,書中還為Core Data增加了一個新項目。

立即展卷閱讀。開始神奇的iPhone開發之旅吧。

內容簡介

iPhone是一種全新的移動平台,蘋果公司為它推出了強大的軟體開發工具包iPhone SDK。本書是一部關於iPhone SDK 3和iPhone 3開發的基礎教程,內容翔實、語言生動。書中結合消費類設備上常見的實例,循序漸進地講解了iPhone 3開發的基本流程,並介紹了最先進、時尚、受歡迎的iPhone 3新特性。

本書內容完整豐富,具有較強的通用性,編程領域中各層次讀者都能通過本書快速學習iPhone開發,提高相關技能。

作者簡介

Dave Mark 深受愛戴的Apple技術開發專家,具有多年開發經驗。他撰寫過許多Mac平台暢銷書,目前專注於iPhone技術圖書的寫作,包括本書姊妹篇《iPhone 3開發高級教程》(中文版即將由人民郵電出版社出版)。

目錄

第1章 歡迎來到iPhone的世界 1

1.1 關於本書 1

1.2 必要條件 1

1.3 必備知識 3

1.4 編寫iPhone應用程式有何不同 4

1.4.1 只有一個正在運行的應用程式 4

1.4.2 只有一個視窗 4

1.4.3 受限訪問 5

1.4.4 有限的回響時間 5

1.4.5 有限的螢幕大小 5

1.4.6 有限的系統資源5

1.4.7 不支持垃圾收集 6

1.4.8 新功能 6

1.4.9 與眾不同的方法 6

1.5 本書內容 6

1.6 本次更新的內容 7

1.7 準備開始吧 7

第2章 創建基本項目 8

2.1 在Xcode中設定項目 8

2.2 Interface Builder簡介 13

2.2.1 nib檔案的構成 14

2.2.2 在視圖中添加標籤 15

2.3 美化iPhone應用程式 17

2.4 小結 20

第3章 處理基本互動 21

3.1 MVC范型 21

3.2 創建項目 22

3.3 創建視圖控制器 22

3.3.1 輸出口 23

3.3.2 操作 24

3.3.3 將操作和輸出口添加到視圖控制器 24

3.3.4 將操作和輸出口添加到實現檔案 26

3.4 使用應用程式委託 30

3.5 編輯MainWindow.xib 33

3.6 編輯Button_FunViewController.xib 34

3.6.1 在Interface Builder中創建視圖 34

3.6.2 連線所有元素 36

3.6.3 測試 39

3.7 小結 39

第4章 更豐富的用戶界面 40

4.1 滿是控制項的螢幕 40

4.2 活動、靜態和被動控制項 42

4.3 創建應用程式 42

4.3.1 導入圖像 42

4.3.2 實現圖像視圖和文本欄位 43

4.3.3 添加圖像視圖 44

4.3.4 添加文本欄位 47

4.3.5 設定第二個文本欄位的屬性 50

4.3.6 連線輸出口 50

4.4 構建和運行 51

4.4.1 完成輸入後關閉鍵盤 51

4.4.2 通過觸摸背景關閉鍵盤 52

4.5 實現滑塊和標籤 54

4.5.1 確定輸出口 54

4.5.2 確定操作 54

4.5.3 添加輸出口和操作 54

4.5.4 添加滑塊和標籤 55

4.5.5 連線操作和輸出口 56

4.6 實現開關、按鈕和分段控制項 57

4.6.1 確定輸出口 57

4.6.2 確定操作 57

4.6.3 添加開關、按鈕和分段控制項 59

4.6.4 連線開關輸出口和操作 60

4.6.5 添加按鈕 61

4.7 實現操作表和警報 62

4.7.1 遵從操作表委託方法 62

4.7.2 顯示操作表 62

4.7.3 操作表委託和創建警報 64

4.8 美化按鈕 66

4.8.1 viewDidLoad方法 66

4.8.2 控制項狀態 67

4.8.3 可拉伸圖像 67

4.9 成為出色的記憶體使用者 67

4.10 小結 68

第5章 自動旋轉和自動調整大小 70

5.1 使用自動調整屬性處理旋轉 71

5.1.1 指定旋轉支持 71

5.1.2 使用自動調整屬性設計界面 73

5.1.3 自動調整屬性 74

5.1.4 設定按鈕的自動調整屬性 75

5.2 在旋轉時重構視圖 76

5.2.1 聲明和連線輸出口 77

5.2.2 在旋轉時移動按鈕 77

5.3 切換視圖 79

5.3.1 確定輸出口 80

5.3.2 確定動作 80

5.3.3 聲明動作和輸出口 80

5.3.4 設計兩個視圖 81

5.3.5 實現交換和動作 82

5.4 小結 84

第6章 多視圖應用程式 85

6.1 View Switcher應用程式 87

6.2 多視圖應用程式的體系結構 88

6.3 構建View Switcher 88

6.3.1 創建視圖控制器和nib檔案 89

6.3.2 修改應用程式委託 91

6.3.3 SwitchViewController.h 92

6.3.4 修改MainWindow.xib 92

6.3.5 編寫SwitchViewController.m 95

6.3.6 實現內容視圖 98

6.4 製作轉換動畫 101

6.5 小結 103

第7章 標籤欄與選取器 104

7.1 Pickers應用程式 104

7.2 委託和數據源 106

7.3 建立工具列框架 106

7.3.1 創建檔案 107

7.3.2 添加根視圖控制器 108

7.4 實現日期選取器 112

7.5 實現單個組件選取器 114

7.5.1 聲明輸出口和操作 114

7.5.2 構建視圖 115

7.5.3 將控制器實現為數據源和委託 115

7.6 實現多組件選取器 120

7.6.1 聲明輸出口和操作 120

7.6.2 構建視圖 120

7.6.3 實現控制器 121

7.7 實現獨立組件 123

7.8 使用自定義選取器創建簡單遊戲 130

7.8.1 編寫控制器頭檔案 130

7.8.2 構建視圖 130

7.8.3 添加圖像資源 131

7.8.4 實現控制器 131

7.8.5 spin方法 134

7.8.6 viewDidLoad方法 135

7.8.7 最後的細節 137

7.8.8 連結Audio Toolbox框架 140

7.9 小結 141

第8章 表視圖簡介 142

8.1 表視圖基礎 142

8.2 實現一個簡單的表 145

8.2.1 設計視圖 145

8.2.2 編寫控制器 146

8.3 添加一個圖像 149

8.4 附加配置 151

8.4.1 設定縮進級別 152

8.4.2 處理行的選擇 152

8.4.3 更改字型大小和行高 154

8.4.4 委託還能做什麼 155

8.5 定製表視圖單元 155

8.5.1 單元應用程式 155

8.5.2 向表視圖單元添加子視圖 156

8.5.3 使用UITableViewCell的自定義子類 159

8.6 分組分區和索引分區 163

8.6.1 構建視圖 163

8.6.2 導入數據 164

8.6.3 實現控制器 164

8.6.4 添加索引 168

8.7 實現搜尋欄 168

8.7.1 重新考慮設計 168

8.7.2 深層可變副本 169

8.7.3 更新控制器頭檔案 170

8.7.4 修改視圖 171

8.7.5 修改控制器實現 173

8.8 小結 183

第9章 導航控制器和表視圖 184

9.1 導航控制器 184

9.1.1 棧的性質 184

9.1.2 控制器棧 185

9.2 由6個部分組成的分層應用程式:Nav 185

9.3 構建Nav應用程式的骨架 188

9.3.1 創建第一級視圖控制器 188

9.3.2 設定導航控制器 189

9.4 第一個子控制器:展示按鈕視圖 194

9.5 第二個子控制器:校驗表 201

9.6 第三個子控制器:表行上的控制項 205

9.7 第四個子控制器:可移動的行 211

9.7.1 編輯模式 211

9.7.2 創建一個新的二級控制器 212

9.8 第五個子控制器:可刪除的行 217

9.9 第六個子控制器:可編輯的詳細窗格 222

9.9.1 創建數據模型對象 222

9.9.2 創建控制器 224

9.9.3 創建詳細視圖控制器 227

9.10 其他內容 240

9.11 小結 243

第10章 應用程式設定和用戶默認設定 244

10.1 設定束 244

10.2 AppSettings應用程式 245

10.3 創建項目 247

10.4 使用設定束 248

10.4.1 在項目中添加設定束 248

10.4.2 設定屬性列表 249

10.4.3 添加文本欄位設定 250

10.4.4 添加安全文本欄位設定 252

10.4.5 添加多值欄位 252

10.4.6 添加撥動開關設定 253

10.4.7 添加滑塊設定 254

10.4.8 添加子設定視圖 255

10.5 讀取應用程式中的設定 256

10.6 更改應用程式中的默認設定 260

10.7 小結 263

第11章 基本數據持久性 264

11.1 應用程式的沙盒 264

11.1.1 獲取Documents目錄 265

11.1.2 獲取tmp目錄 266

11.2 檔案保存策略 266

11.2.1 單個檔案持久性 266

11.2.2 多個檔案持久性 267

11.3 持久保存應用程式數據 267

11.4 持久性應用程式 268

11.4.1 創建持久性項目 269

11.4.2 設計持久性應用程式視圖 269

11.4.3 編輯持久性類 270

11.4.4 對模型對象進行歸檔 273

11.4.5 實現NSCopying 275

11.5 歸檔應用程式 276

11.5.1 實現FourLines類 277

11.5.2 實現PersistenceView-Controller類 278

11.6 使用iPhone的嵌入式SQLite3 280

11.7 使用Core Data 289

11.7.1 實體和託管對象 291

11.7.2 鍵/值編碼 292

11.7.3 在上下文中結合它們 292

11.7.4 創建新託管對象 293

11.7.5 檢索託管對象 293

11.7.6 設計數據模型 294

11.7.7 創建持久視圖和控制器 297

11.7.8 將持久視圖控制器設定為應用程式的根控制器 302

11.8 小結 303

第12章 使用Quartz和OpenGL繪圖 304

12.1 圖形世界的兩個視圖 304

12.2 本章的繪圖應用程式 305

12.3 Quart繪圖方法 305

12.3.1 Quartz 2D的圖形上下文305

12.3.2 坐標系 306

12.3.3 指定顏色 307

12.3.4 在上下文中繪製圖像 308

12.3.5 繪製形狀:多邊形、直線和曲線309

12.3.6 Quartz 2D工具示例:模式、梯度、虛線模式 309

12.4 構建QuartzFun應用程式 309

12.4.1 創建隨機顏色 310

12.4.2 定義應用程式常量 311

12.4.3 實現QuartzFunView框架 312

12.4.4 向視圖控制器中添加輸出口和操作 314

12.4.5 更新QuartzFunViewContro-ller.xib 316

12.4.6 繪製直線 317

12.4.7 繪製矩形和橢圓形 319

12.4.8 繪製圖像 320

12.4.9 最佳化QuartzFun應用程式 322

12.5 一些OpenGL ES基礎知識 325

12.5.1 構建GLFun應用程式 326

12.5.2 設計Nib、添加框架、運行應用程式 335

12.6 小結 335

第13章 輕擊、觸摸和手勢 336

13.1 多觸摸術語 336

13.2 回響者鏈 337

13.3 多觸摸體系結構 338

13.4 觸摸瀏覽器應用程式 339

13.5 Swipes應用程式 342

13.6 實現多個輕掃動作 345

13.7 檢測多次輕擊 347

13.8 檢測捏合操作 351

13.9 自己定義手勢 354

13.10 小結 358

第14章 使用Core Location定位功能 359

14.1 位置管理器 359

14.1.1 設定所需的精度 360

14.1.2 設定距離篩選器 360

14.1.3 啟動位置管理器 360

14.1.4 更明智地使用位置管理器 360

14.2 位置管理器委託 361

14.2.1 獲取位置更新361

14.2.2 使用CLLocation獲取緯度和經度 361

14.2.3 錯誤通知 362

14.3 嘗試使用Core Location 363

14.3.1 更新位置管理器 367

14.3.2 確定移動距離 367

14.4 小結 368

第15章 加速計 369

15.1 加速計物理學 369

15.2 訪問加速計 370

15.2.1 UIAcceleration 370

15.2.2 實現accelerometer: didAccelerate:方法 371

15.3 搖動與擊碎 373

15.3.1 用於擊碎的代碼 373

15.3.2 載入模擬檔案 376

15.3.3 完好如初——復原觸摸 377

15.4 滾彈珠程式 377

15.4.1 實現Ball View控制器 378

15.4.2 編寫Ball View 379

15.4.3 計算小球運動 382

15.5 小結 385

第16章 iPhone照相機和照片庫 386

16.1 使用圖像選取器和UIImagePicker-Controller 386

16.2 實現圖像選取器控制器委託 387

16.3 實際測試照相機和庫 389

16.3.1 設計界面 390

16.3.2 實現照相機視圖控制器 390

16.4 小結 394

第17章 應用程式本地化 395

17.1 本地化體系結構 395

17.2 使用字元串檔案 396

17.3 現實中的iPhone:本地化應用程式 398

17.3.1 查看當前區域設定 401

17.3.2 測試LocalizeMe 401

17.3.3 本地化nib檔案 402

17.3.4 查看本地化的項目結構 403

17.3.5 本地化圖像 405

17.3.6 本地化應用程式圖示406

17.3.7 生成和本地化字元串檔案 406

17.4 小結 409

第18章 未來之路 410

18.1 別陷進單一的思路里 410

18.1.1 蘋果公司的文檔 410

18.1.2 郵件列表 411

18.1.3 論壇 411

18.1.4 網站 411

18.1.5 部落格 412

18.1.6 Dave和Jeff的部落格及Twitter 412

18.1.7 參考圖書 412

18.1.8 如果仍未解決問題 412

18.2 再會 412

相關詞條

相關搜尋

熱門詞條

聯絡我們