|
-- 會員 / 註冊 --
|
|
|
|
20天搞定iPhone軟件開發 ( 簡體 字) |
作者:王志剛,朱蕾,王中元 | 類別:1. -> 程式設計 -> 手機程式 -> iPhone |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 33964 詢問書籍請說出此書號!【缺書】 NT售價: 345 元 |
出版日:10/1/2012 |
頁數:404 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121184871 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:對iPhone軟件開發稍有了解的朋友應該都知道,要短時間從其他語言的一般程序員過渡為iPhone軟件開發的程序員,必須掌握兩個方面的iPhone編程知識,即Objective-C2.0語言和iPhoneSDK。對于有一定軟件開發經驗,特別是有面向對象語言(如C++,Java)開發經驗的程序員來說,掌握iPhone軟件開發所必需的Objective-C 2.0語言是沒有多少難度,最困難的是學會對iPhone SDK中所提供各類框架(framework)的使用。iPhone SDK中光框架就要幾十種之多,再加上各種動態連接庫(Dynamic Library,提供各種特定功能的API庫,如數據庫應用、解壓縮等),總計有上百種之多。在一本速成類型的書籍中不可能都一一涉及。以筆者的經驗,完成iPhone軟件開發的入門,最關鍵的是掌握用于開發iPhone應用程序界面的UIKit框架。實際上,運行iPhone/iPad/iPod Touch上的iPhone應用程序本質上類似于客戶軟件終端,開發時涉及最多的也是關于軟件界面的開發。 本著以上的想法,筆者編寫了這本名為《20天搞定iPhone軟件開發》的書籍。一共20講,一天完成一講的學習。本著循序漸進的原則,前10講偏重于Cocoa面向對象編程的基本概念及Objective-C 2.0語言的語法基礎,對于有面向對象編程基礎且有一定編程經驗的讀者來說,學習起來應該很輕松,可能會提前幾天就可以完成學習。 第10講以后開始進入iPhone軟件開發的實戰階段,每一講的內容都比較充實,其中包含了各種實例代碼,鼓勵讀者在Xcode等開發環境中進行試運行驗證。部分章節可能在一天之內難以掌握。其中第11講至第13講介紹了iPhone軟件開發時經常用到的各種基礎數據類型的使用知識;第14講至第17講是關于UIKit框架中各種類的使用方法及技巧,是學習iPhone軟件開發時需要重點掌握的知識;第18講介紹了在iPhone應用程序中使用數據庫的技巧,包括直接使用SQLite數據庫以及使用CoreData來間接操作SQLite數據庫;最后第19講和第20講介紹了iPhone應用程序調試的基礎,第19講介紹了開發階段的調試技巧,第20講介紹如何在實際終端設備上進行調試的相關操作及技巧。 本書的目標是讓對iPhone軟件開發比較陌生的程序員成為初步具有“實戰能力”的iPhone軟件程序員,以本書中學習到的iPhone軟件開發知識為基礎,可以進一步學習iPhone SDK中的其他各種框架,逐步提高自己的開發能力。 武漢大學計算機學院王中元副教授以及朱蕾負責編寫了本書中的部分內容。另外,江友華、羅偉、黃建峰、朱至濂參加了本書部分章節的審校及協助編寫工作。在此特別感謝電子工業出版社包括孫學瑛編輯在內的各位編輯在本書編寫過程中的大力支持。 作 者2012年8月 |
內容簡介:本書是為有一定其他語言編程經驗的程序員轉向iOS軟件開發而撰寫的速成教材。全書一共20講,一天完成1講的學習。本著循序漸進的原則,前面的10講偏重于Cocoa面向對象編程的基本概念以及Objective-C 2.0語言的語法基礎。 從第10講以后開始進入iOS軟件開發的實戰階段,每1講的內容都比較充實,其中包含了各種實例代碼,讀者可以在Xcode等開發環境中邊實踐邊學習。讀者完成全書20講的學習后可以達到初級iOS程序員的水準。 未經許可,不得以任何方式復制或抄襲本書之部分或全部內容。 |
目錄:第1講 配置開發環境 1
1.1 Mac應用程序開發環境 1
1.2 iPhone應用程序開發環境 2
1.3 查看安裝目錄內容 .4
1.3.1啟動 Xcode 5
1.3.2啟動 Interface Builder 6
1.4 Mac中的基本操作 6
1.4.1彈出菜單的顯示方法 6
1.4.2工具條的定制 . 8
第2講 應用程序與框架 .10
2.1 關于應用程序 .10
2.1.1應用程序的種類 .11
2.1.2關于 iPhone應用程序 . 12
2.2 框架 .13
2.2.1簡單的【 Hello World】程序 . 13
2.2.2框架的出現 . 13
2.2.3編程語言與框架的關系 14
2.3 MacOS X以及 iPhone SDK中的框架 14
2.3.1框架的安裝目錄 14
2.3.2 Cocoa與Carbon . 15
2.3.3應用程序中使用的框架 16
2.4 Cocoa與Carbon的發展軌跡 .18
第3講 Cocoa與Objective-C20
3.1 框架的使用 .20
3.1.1關于 API 20
3.1.2 API與編程語言的關系 21
3.2 Objective-C的發展史22
3.3 用于其他語言中的Cocoa API 23
3.3.1通過橋調用Cocoa . 23
3.3.2是否應提倡在Objective-C以外的語言中調用Cocoa API的開發方式 . 24
3.4 解答與Objective-C相關的幾個疑問25
第4講 開發工具27
4.1 Xcode .27
4.1.1綜合開發環境Xcode的功能 . 27
4.1.2工程窗口. 28
4.1.3文本編輯器的功能 32
4.1.4開發者手冊 . 35
4.2 Interface Builder 36
4.3 Dashcode37
4.4 iPhone模擬器 38
4.5 其他工具 .38
4.5.1 FileMerge 38
4.5.2 Icon Composer 39
4.5.3 Property List Editor. 39
4.6 Mac或iPhone應用程序開發的流程 .39
4.6.1準備應用程序用的材料 39
4.6.2建立步驟. 41
4.6.3 gcc 42
第5講 Cocoa環境下的面向對象編程.43
5.1 面向對象的基本概念術語 .43
5.1.1類 44
5.1.2實例 44
5.1.3實例變量. 44
5.1.4方法 45
5.1.5繼承 45
5.1.6相互關系. 46
5.1.7對象 46
5.2 在Cocoa實例中理解基本術語 .47
5.2.1通過按鈕配置理解基本術語 . 47
5.2.2文本輸入框的繼承關系 48
第6講 Hello World應用程序49
6.1 Hello World程序49
6.2 啟動Xcode創建工程 .49
6.3 編輯代碼 .51
6.4 啟動Interface Builder設計用戶界面 52
6.4.1 xib文件 . 52
6.4.2 Interface Builder窗口 53
6.4.3設計Hello World的用戶界面. 55
6.5 連接插座與動作 .55
6.6 完成Hello World App Delegate的代碼編寫58
6.7 建立與運行 .59
6.8 開發步驟再回顧 .61
第7講 MVC構架.62
7.1 HelloWorld應用程序開發流程中包含的信息.62
7.2 什么是MVC構架 62
7.2.1視圖層 63
7.2.2模型層 63
7.2.3控制層 64
7.3 使用MVC構架的實例 64
7.3.1 iTunes的模型 64
7.3.2 iTunes的視圖 65
7.3.3 iTunes的控制 66
7.4 使用MVC構架的Cocoa應用程序開發特點66
7.4.1視圖組件由Cocoa提供 66
7.4.2保持視圖與模型間的相互獨立 . 67
7.4.3應用程序特有的功能由控制提供 . 67
7.4.4只用創建模型以及控制的類 . 67
第8講 插座與動作68
8.1 視圖與控制間信息交換 .68
8.2 插座與動作 .69
8.2.1什么是插座 . 69
8.2.2什么是動作 . 69
8.3 插座以及動作的連接 70
8.3.1插座與動作的追加 70
8.3.2插座的連接 . 71
8.3.3動作的連接 . 72
8.3.4連接確認. 73
第9講 Objective-C的語法 75 9.1 Objective-C的編程概論 75 9.1.1 Objective-C與C語言 . 75 9.1.2 Objective-C程序 75 9.1.3 類的聲明與實體 76 9.1.4 創建Objective-C的測試工程 . 76 9.2 類的聲明 .81 9.2.1 導入聲明文件 81 9.2.2 類的聲明 . 82 9.2.3 實例變量的聲明 82 9.2.4 實例方法的聲明 83 9.3 編寫類的實體 .87 9.3.1 編寫類的實體 87 9.3.2 編寫方法代碼 87 9.3.3 關于方法的聲明 88 9.4 對象專用變量類型 .88 9.4.1 實例對象專用的變量類型 . 88 9.4.2 id類型 . 89 9.4.3 nil類型 89 9.4.4 在條件表達式中使用對象變量 . 89 9.5 方法調用 .90 9.5.1 實例方法的調用 90 9.5.2 類方法的調用 91 9.5.3 對象為nil的情況 . 92 9.6 命名規則 .92 9.6.1 類的命名規則 92 9.6.2 實例變量的命名規則 93 9.6.3 方法的命名規則 93 9.7 重新解析Cocoa的Hello World程序94 9.7.1 HelloWorldAppDelegate.h . 94 9.7.2 HelloWorldAppDelegate.m 95 第10講 內存管理 98 10.1 內存分配與釋放 .98 10.2 與內存相關的問題 .99 10.2.1 內存釋放的時機 99 10.2.2 內存泄漏 . 100 10.3 使用垃圾收集進行內存管理 .100 10.3.1 垃圾回收 . 100 10.3.2 Objective-C與垃圾回收 102 10.3.3 垃圾回收功能有效化 103 10.3.4 垃圾回收編程的規則 103 10.4 由參照統計實現的內存管理 .104 10.4.1 參照統計的基本概念 104 10.4.2 retain、release方法 . 104 10.4.3 對象保持到釋放的流程 105 10.5 類的實例化 .106 10.5.1 類的實例化與初期化 107 10.5.2 自動釋放 . 108 10.5.3 創建實例的方法 108 10.5.4 實例的釋放 . 109 10.6 內存管理的規則 .110 10.6.1 臨時對象 110 10.6.2 內存管理經驗總結 .111 第11講 字符串 .113 11.1 字符串專用類 113 11.2 NSString與NSMutableString 113 11.3 字符編碼 114 11.3.1 什么是字符編碼 .114 11.3.2 NSString的字符代碼為Unicode .115 11.3.3 NSStringEncoding 115 11.4 字符串的生成 116 11.4.1 使用【@””】的形式創建新字符串 .116 11.4.2 創建中文字符串 .116 11.4.3 使用格式創建字符串 .118 11.5 NSRange 119 11.6 字符串處理 120 11.6.1 計算字符串的長度 120 11.6.2 字符串連接、插入、刪除 . 121 11.6.3 字符串的比較 . 124 11.6.4 字符串的檢索 . 125 11.6.5 抽取部分字符串 126 11.7 讀寫文本文件 127 11.7.1 讀取文本文件 . 127 11.7.2 文本文件輸出 . 128 第12講 集合 .130 12.1 數組 .130 12.1.1 NSArray與 NSMutableArray . 130 12.1.2 數組的創建 . 131 12.1.3 數組的長度 . 132 12.1.4 通過索引取得對象 132 12.1.5 使用NSEnumerator取得對象 133 12.1.6 使用高速枚舉取得對象 136 12.1.7 對象的追加與刪除 136 12.2 字典 .138 12.2.1 什么是字典類型 138 12.2.2 NSDictionary與 NSMutableDictionary 139 12.2.3 NSDictionary的創建 . 139 12.2.4 鍵與值的取得 . 141 12.2.5 鍵與值的追加 . 142 12.3 包裝類 .143 12.3.1 什么是包裝類 . 143 12.3.2 NSNumber 144 12.4 對象的等價與同值 .146 12.4.1 擁有相同值的對象 146 12.4.2 等價與同值的判定 146 12.4.3 在集合類中的應用 147 12.5 集合類與參照統計 .148 12.5.1 NSArray與參照統計 . 148 12.5.2 NSDictionary與參照統計 149 第13講 XML應用 150 13.1 XML概要 .150 13.1.2 一種常用的XML實例—RSS . 150 13.2 XML的解析 .151 13.2.1 解析及解析器 . 151 13.2.2 XML解析器的種類 . 152 13.2.3 樹結構. 153 13.3 Cocoa的XML解析器 154 13.3.1 NSXMLDocument、NSXMLNode、NSXMLElement 154 13.3.2 XML文檔的解析器 . 155 13.3.3 Xpath 157 13.3.4 節點信息 . 158 13.3.5 節點的父子關系 159 13.3.6 屬性值的取得 . 161 13.4 iPhone 應用軟件中的XML解析實例 162 13.4.1 第三方API及實例概要 162目 錄 13.4.2 創建并完成RSS文件解析程序 163 第14講 UIKit框架簡介及iPhone應用程序基礎類 .168 14.1 UIKit概要 168 14.1.1 UIKit類列表 168 14.1.2 iPhone Hello World程序 171 14.1.3 不使用Interface Builder的Hello World程序 175 14.1.4 在Xcode 4中創建Hello World程序 180 14.2 畫面構成基礎—UIView .184 14.2.1 UIView概要 184 14.2.2 UIView嵌套 187 14.3 UIViewController與畫面控制 195 14.3.1 使用UIViewController實現簡單的畫面切換 . 195 14.3.2 使用UITabBarController實現并列畫面跳轉 . 200 14.3.3 使用UINavigationController實現多層畫面跳轉 . 204 14.3.4 跳轉到任意畫面 210 14.3.5 模態(modal)畫面的顯示方法 . 212 第15講 iPhone應用程序中的事件響應 215 15.1 事件響應 .215 15.1.1 按鈕的觸摸 . 215 15.1.2 響應方法的定義 217 15.1.3 滑塊的滑動 . 218 15.2 UIResponder 221 15.2.1 畫面觸摸的檢測 221 15.2.2 標簽觸摸的檢測 222 15.2.3 響應鏈. 224 15.2.4 觸摸系列最終處理及取消 . 228 15.3 多次觸碰 .229 15.3.1 二次觸碰 . 229 15.4 手勢 .232 15.4.1 拖動檢測 . 232 15.4.2 滑動檢測 . 236 15.4.3 快速滑動檢測 . 240 15.5 多點觸摸 .243 15.5.1 檢測多點觸摸 243 15.5.2 檢測雙指滑動 . 244 15.5.3 檢測擴大/縮小 246 15.6 振動 .249 15.6.1 檢測振動 . 249 第16講 常用UI控件 .252 16.1 標簽(UILabel) 252 16.1.1 文本與對齊方式的設置 252 16.1.2 標簽顏色與文本顏色的修改 . 253 16.1.3 改變字體 . 254 16.1.4 字體尺寸的自動調整 254 16.1.5 多行字符串 . 255 16.1.6 換行與省略 . 256 16.1.7 高亮時的文本顏色 256 16.1.8 陰影顯示 . 256 16.1.9 繪制方法的定制 258 16.2 按鈕(UIButton) 259 16.2.1 按鈕的配置與觸摸檢測 259 16.2.2 按鈕的種類 . 259 16.2.3 按鈕的狀態及標題變化 260 16.2.4 按鈕觸摸時的陰影反轉 261 16.2.5 按鈕觸摸時的背景閃爍 261 16.2.6 在按鈕中追加圖片 262 16.2.7 設置按鈕背景圖片 263 16.2.8 調整按鈕的邊間距 264 16.2.9 設置標題的換行/省略 265 16.3 文本輸入框(UITextField) 266 16.3.1 文本輸入框的顯示 266 16.3.2 鍵盤的顯示/隱藏 266 16.3.3 鍵盤的各種設置 267 16.3.4 文本輸入框的邊框線 267 16.3.5 文本的橫向與縱向的調整 . 267 16.3.6 文本輸入框的字體及顏色 . 268 16.3.7 提示信息的設置 269 16.3.8 清空按鈕的顯示 269 16.3.9 背景圖片的設置 270 16.3.10 UIView的追加 270 16.3.11 文本輸入框的狀態監視 272 16.4 開關(UISwitch) 272 16.4.1 開關的使用 . 272 16.5 選擇控件(UISegmentedController) .274 16.5.1 選擇控件的使用方法 274 16.5.2 選擇控件的種類 276 16.5.3 不顯示選擇狀態 276 16.5.4 選擇控件的顏色變更 276 16.5.5 使用圖標的選擇控件 277 16.5.6 修改選項內容的顯示位置 . 278 16.5.7 設置選項的非活性 278 16.5.8 選項的插入與刪除 278 16.6 滑塊(UISlider) 280 16.6.1 滑塊的使用方法 280 16.6.2 滑塊值的通知時機 281 16.6.3 向滑塊中追加圖標 281 16.6.4 滑塊的定制 . 282 16.7 日期時刻選擇框(UIDatePicker) .284 16.7.1 日期時刻選擇框的使用 284 16.7.2 以動畫形式改變日期 285 16.7.3 設置間隔及最小/最大值 . 285 16.7.4 日期選擇框的種類 286 16.7.5 定制日期選擇框 287 第17講 表格視圖(UITableView) .290 17.1 表格顯示 .290 17.1.1 最簡單的表格顯示 290 17.1.2 單元選擇時的動作 293 17.1.3 表格的分段顯示 294 17.1.4 表格的分組顯示 297 17.1.5 段腳的顯示 . 299 17.1.6 索引的活用 . 299 17.2 單元的定制 .301 17.2.1 單元尺寸及顏色的修改 301 17.2.2 單元分隔線的修改 302 17.2.3 追加圖片 . 303 17.2.4 追加細節標簽 . 305 17.2.5 追加附件 . 306 17.2.6 追加自定義附件 308 17.2.7 追加僅編輯模式時顯示的附件 . 309 17.2.8 追加控件 311 17.2.9 定制單元背景 . 315 第18講 使用SQLite數據庫 317 18.1 SQLite數據庫及使用SQLite數據庫的前期準備 317 18.1.1 SQLite數據庫概要 317 18.1.2 使用SQLite數據庫的前期準備 . 318 18.2 創建數據庫及表格 .319 18.3 連接數據庫 .321 18.4 數據檢索 .324 18.5 數據的追加與刪除 .328 18.6 數據庫更新 .332 18.7 使用Core Data進行數據的追加、刪除 .335 18.7.1 Core Data的優點 . 335 18.7.2 創建使用Core Data的應用程序. 336 18.7.3 改造Core Data的數據模型 337 18.7.4 修改數據登錄與保持代碼 . 341 18.7.5 數據刪除代碼 . 342 18.8 追加編輯數據畫面 .342 18.9 添加排序項目 .345 第19講 調試方法 349 19.1 缺陷與調試 .349 19.1.1 什么是缺陷與調試 349 19.1.2 描述缺陷 . 350 19.1.3 缺陷的重現 . 350 19.2 NSLog 351 19.2.1 使用NSlog輸出調試信息 351 19.2.2 NSLog的格式 353 19.3 調試工具 .354 19.3.1 什么是調試工具 355 19.3.2 調試構建配置 . 355 19.3.3 斷點與調試模式的啟動 356 19.3.4 調試界面 . 356 19.3.5 調試的分步執行 358 19.4 例外 .359 19.4.1 什么是例外 . 359 19.4.2 捕捉例外 . 360 19.4.3 發生例外時停止運行 362 19.4.4 避免使用太多的例外 362 第20講 使用iPhone終端進行測試 .364 20.1 iPhone Developer Program 364 20.1.1 【iPhone Developer Program】的會員種類 364 20.1.2 【iPhone Developer Program】的注冊手續 365 20.1.3 關于【Apple ID】 . 365 20.1.4 【iPhone Developer Program】的付款及認證手續 . 366 20.2 在實際iPhone手機上的調試 366 |
序: |
|