iOS開發從入門到精通

iOS開發從入門到精通

作者: 劉燕
出版社: 清華大學
出版在: 2017-10-01
ISBN-13: 9787302448662
ISBN-10: 7302448663
裝訂格式: 平裝
總頁數: 868 頁





內容描述


《iOS開發從入門到精通》一書以iOS 9.0、Xcode 6.4為平臺,全面介紹了iOS應用開發的基礎知識。掌握Objective-C語言是iOS應用開發的基礎,全書從Objective-C基本語法開始,詳細講解了Objective-C語法結構、Objective-C面向對象特徵、Foundation核心類庫用法,iOS應用開發的基本理論,以及iOS應用和編程技巧,主要包括iOS應用核心、窗口和視圖、事件處理、視圖控制器繪圖、文件、SQLite、數據處理、網絡、多媒體、設備支持、游戲開發等內容。本書還提供了很多開發應用案例,模仿練習這些案例,能夠幫助用戶快速地找到實戰的感覺。
《iOS開發從入門到精通》內容翔實、結構清晰、循序漸進,基礎知識與案例實戰緊密結合,既可作為iOS初學者的入門教材,也適合中高級用戶對新技術做進一步的學習和參考。


目錄大綱


第1章iOS基礎
視頻講解:23分鐘
1.1iOS發展歷史
1.2iOS特性
1.3iOS架構
1.3.1CocoaTouch層
1.3.2媒體層
1.3.3CoreServices層
1.3.4CoreOS層
1.4Objective—C概述
1.5比較iOS和MacOS 
1.5.1UIKit與AppKit的對比
1.5.2Foundation框架的差異
1.5.3其他框架的改變
1.6iOS開發環境和工具
1.6.1了解Xcode 
1.6.2Xcode導航面板
1.6.3Xcode檢查器面板
1.6.4Xcode庫面板
1.6.5使用幫助
1.7使用Xcode 
1.7.1案例:編寫第一個Objective—C程序
1.7.2案例:創建第一個項目
1.8小結
第2章數據類型和運算符
視頻講解:88分鐘
2.1數據類型分類
2.2簡單數據類型
2.2. 1整型
2.2.2案例:輸出格式字符
2.2.3浮點型
2.2.4字符型
2.2.5案例:定義字符串
2.2.6枚舉型
2.2.7布爾型
2.3類型轉換
2.3.1案例:自動類型轉換
2.3.2案例:強制類型轉換
2.3.3案例:自動提升
2.4運算符
2.4. 1運算符分類
2.4.2運算優先級
2.4.3算術運算符
2.4.4賦值運算符
2.4.5位運算符
2.4.6比較運算符
2.4.7邏輯運算符
2.4.8逗號運算符
2.4.9條件運算符
2.5小結
第3章控制語句
視頻講解:44分鐘
3.1條件語句
3.1.1if語句
3.1.2案例:分支語句應用
3.1.3switch語句
3.2循環語句
3.2.1while語句
3.2.2do—while語句
3.2.3for語句
3.2.4案例:for語句應用
3.2.5案例:嵌套循環
3.3控制語句
3.3.1break語句
3.3.2continue語句
3.3.3return語句
3.3.4案例:使用goto語句
3.4預處理命令
3.4.1宏定義
3.4.2運算符
3.4.3#import語句
3.4.4條件編譯
3.5小結
第4章C語言特性
視頻講解:122分鐘
4.1數組
4.1.1定義數組
4.1.2初始化數組
4.1.3使用數組
4.1.4定義多維數組
4.1.5初始化多維數組
4.1.6使用字符數組
4.1.7案例實戰
4.2函數
4.2.1定義函數
4.2.2聲明函數
4.2.3函數類型
4.2.4函數參數
4.2.5函數返回值
4.2.6案例實戰
4.3塊
4.3.1定義塊
4.3.2塊作用域
4.3.3使用塊變量類型
4.4結構
4.4.1定義結構
4.4.2使用typedef 
4.4.3初始化結構
4.4.4使用結構體數組
4.4.5嵌套結構
4.5指針
4.5.1認識指針
4.5.2定義指針變量
4.5.3指針的基本運算
4.5.4指針變量作為函數參數
4.5.5對象和指針的關係
4.6數組和指針
4.6.1指向數組的指針變量
4.6.2指針運算
4.6.3案例實戰
4.7案例應用
4.7.1使用字符串指針
4.7.2使用函數指針
4.8小結
第5章類
視頻講解:107分鐘
5.1定義類
5.1.1認識類
5.1.2接口
5.1.3實現
5.1.4案例:定義類
5.2使用類
5.2.1實例化
5.2.2指針
5.2.3self 
5.2.4id類型
5.2.5類名的使用
5.2. 6類的比較
5.3變量
5.3.1局部變量
5.3.2全局變量
5.3.3實例變量
5.3.4靜態變量
5.3.5變量的存儲類別
5.3.6案例:定義單例類
5.3.7案例:定義類變量
5.4屬性
5.4.1屬性的聲明
5.4.2屬性的實現
5.4.3屬性類型和相關函數
5.4.4屬性類型編碼
5.4.5屬性重聲明
5.4.6子類中的屬性
5.4.7案例:使用封裝
5.4.8案例:使用訪問控制符
5.4.9案例:合成存取
5.4.10案例:點語法存取
5.5方法
5.5.1定義方法
5.5.2方法的所屬性
5.5.3案例:設計可變形參的方法
5.6繼承
5.6.1繼承實例變量
5.6.2方法的繼承
5.6.3方法的重寫
5.6.4類別和擴展
5.6.5案例:類繼承
5.6.6案例:重寫
5.6.7案例:使用super關鍵字
5.7異常處理
5.7.1啟用異常處理
5.7.2異常處理
5.7.3捕捉不同類型的異常
5.7.4拋出異常
5.8類型
5.8.1靜態指定類型
5.8.2類型的自查
5.9根類
5.9.1NSObject簡介
5.9.2根類和協議
5.9.3根類方法
5.9.4根類接口規範
5.9.5根類實例方法和類方法
5.10小結
第6章消息和協議
6.1消息
6.1.1定義消息
6.1.2發送消息
6.1.3接收實例變量
6.1.4獲取方法地址
6.1.5objc_msgSend()函數
6.1.6使用隱藏的參數
6.1.7消息轉發
6.1.8消息轉發與多重繼承
6.1.9消息代理對象
6.1.10消息轉發與類繼承
6.1.11多態性
6.1.12動態綁定
6.1.13解析動態方法
6.1.14動態加載
6.1.15“.”語法格式
6.2協議
6.2.1預定義聲明接口
6.2.2預定義方法
6.2.3聲明接口
6.2.4非層級相似性
6.2. 5正式協議
6.2.6非正式協議
6.2.7協議對象
6.2.8採用協議
6.2.9服從協議
6.2.10類型校驗
6.2.11嵌套協議
6.2.12引用其他協議
6.3小結
第7章對象
7.1創建對象
7.1.1分配對象
7.1.2初始化對象
7.1.3dealloc方法
7.1.4類工廠方法
7.2對象動態類型
7.3對象可變性
7.3.1可變或不可變對象
7.3.2用可變對象編程
7.4對象通信
7.4.1面向對象程序中的通信
7.4.2IBoutlet變量
7.4.3委託和數據源
7.4.4目標—動作機制
7.4.5綁定
7.4.6通告
7.5使用對象
7.5.1對象所有權策略
7.5.2保留計數
7.5.3自動釋放
7.5.4共享對象的有效性
7.5.5存取方法
7.5.6回收對象
7.5.7通過引用返回的對象
7.6小結
第8章Foundation框架基礎
視頻講解:133分鐘
8.1認識Foundation框架
8.2使用Foundation框架
8.3數字類型
8.3.1數字類型類NSNumber 
8.3.2比較int、NSInteger、NSUInteger和NSNumber 
8.4字符串類型
8.4.1不可變字符串類NSString 
8.4.2可變字符串類NSMutableString 
8.4.3案例實戰
8.5日期類型
8.5.1日期類型類NSDate 
8.5.2NSCalendar和NSDateComponents 
8.5.3案例實戰
8.6數組類型
8.6.1不可變數組類NSArray
8.6.2可變數組類NSMutableArray 
8.6.3多維數組
8.6.4案例:操作數組
8.6.5案例:操作元素
8.6.6案例:數組排序
8.6.7案例:遍歷數組
8.6.8案例:快速枚舉
8.6 .9案例:可變數組
8.7字典類型
8.7.1不可變字典類NSDictionary 
8.7.2可變字典類NSMutableDictionary 
8.7.3案例:使用字典
8.7.4案例:字典排序
8.7.5案例:字典過濾
8.7.6案例:使用可變字典
8.8案例實戰:集合類型
8.8.1使用NSSet 
8.8.2檢測NSSet重複值
8.8.3可變集合
8.8.4計數集合
8.8.5有序集合
8.9小結
第9章iOS應用開發核心
9.1iOS應用架構
9.1.1生命週期
9.1.2主函數
9.1.3應用委託
9.1.4nib文件
9.1.5事件處理週期
9.1.6基本設置模式
9.2運行環境處理機制
9.2.1快速啟動
9.2.2安全處理
9.2.3內存處理
9.2.4節電處理
9.3程序包
9.3.1信息屬性
9.3.2程序圖標和啟動圖像
9.4定制行為
9.4.1景觀模式啟動
9.4.2與其他程序通信
9.4.3URL模式
9.4.4處理URL請求
9.4. 5偏好設置
9.4.6關閉鎖定
9.5鍵盤管理
9.5.1接收鍵盤通告
9.5.2顯示鍵盤
9.5.3取消鍵盤
9.5.4移動鍵盤
9.6國際化
9.7優化處理
9.7.1不要阻塞主線程
9.7.2有效使用內存
9.7.3減少內存印跡
9.7.4恰當分配內存
9.7.5浮點運算
9.7.6減少電力消耗
9.7.7代碼優化
9.8小結
第10章iOS開發入門
視頻講解:63分鐘
10.1熟悉iOS項目
10.1.1文件結構
10.1.2新建xib界面文件
10.1.3認識xib界面
10.1.4添加控件
10.1.5編輯控件屬性
10.1.6UIView屬性
10.1.7UILabel屬性
10.2iOS運行機制
10.2.1了解MVC 
10.2.2入口函數
10.2.3應用程序委託
10.2.4視圖控制器
10.3事件處理機制
10.3.1獲取控件
10.3.2事件處理
10.4故事板
10.5案例實戰
10.5.1動態更新文本
10.5. 2添加和刪除控件
10.5.3設計跟隨手指的小球
10.5.4設計應用項目圖標
10.5.5設計歡迎界面
10.6小結
第11章窗口和視圖
11.1認識窗口和視圖
11.1.1窗口
11.1.2視圖
11.1. 3視圖控制器
11.2視圖架構
11.2.1視圖交互模型
11.2.2視圖渲染架構
11.2.3CoreAnimation 
11.2.4視圖的層
11.2.5動畫支持
11.2.6視圖坐標系統
11.2.7邊框、邊界和中心
11.2.8坐標系統變換
11.2.9內容模式與比例縮放
11.2.10自動尺寸調整
11.3創建和管理視圖層次
11.3.1視圖層次
11.3.2創建視圖對象
11.3.3添加和移除子視圖
11.3.4坐標轉換
11.3.5標識視圖
11.4動態控制視圖
11.4.1實現視圖動畫
11.4.2配置動畫的參數
11.4.3配置動畫的委託
11.4.4響應佈局的變化
11.4.5重畫視圖的內容
11.4 .6隱藏視圖
11.5創建定制視圖
11.5.1初始化定制視圖
11.5.2描畫視圖內容
11.5.3響應事件
11.5.4清理視圖對象
11.6小結
第12章視圖控制器
視頻講解:43分鐘
12.1視圖控制器基礎
12.1 .1視圖控制器的功能
12.1.2屏幕、窗口和視圖元素
12.1.3視圖管理機制
12.1.4視圖控制器分類
12.1.5內容展示方式
12.1.6視圖控制器混合應用
12.2視圖控制器生命週期
12.2 .1初始化視圖
12.2.2加載和卸載視圖
12.3標準視圖控制器
12.3.1標準視圖控制器概述
12.3.2使用標準視圖控制器
12.4分割視圖控制器
12.4.1分割視圖控制器概述
12.4.2使用分割視圖控制器
12.5導航控制器
12.5.1導航控制器概述
12.5.2使用導航控制器
12.6選項卡控制器
12.6.1選項卡控制器概述
12.6.2使用選項卡控制器
12.7頁視圖控制器
12.7.1頁視圖控制器概述
12.7. 2使用頁視圖控制器
12.8小結
第13章事件
13.1觸摸事件
13.1.1觸摸模型
13.1.2觸摸與事件
13.1.3事件傳遞
13.1.4事件響應過程
13.1.5事件處理方法
13.1.6案例:處理多點觸摸事件
13.1.7案例:檢測碰擦手勢
13.1.8案例:處理複雜多點觸摸序列
13.2運動事件
13.3複製、剪切和粘貼
13.3.1認識粘貼板
13.3.2數據表示
13.3.3選擇菜單
13.3 .4複製和剪切
13.3.5粘貼
13.3.6消除菜單
13.4小結
第14章使用控件(上)
視頻講解:117分鐘
14.1UIKit概述
14.1.1視圖分類
14.1.2應用界面構成
14.1.3UIView視圖
14.1. 4UIControl控件
14.2按鈕
14.2.1添加按鈕
14.2.2案例:定義按鈕
14.2.3案例:配合使用標籤和按鈕
14.3文本框
14.3.1添加文本框
14.3.2案例:設計登錄表單
14.3.3案例:關閉虛擬鍵盤
14.4多行文本
14.4.1添加多行文本框
14.4.2案例:設計內容簡介表單
14.4.3案例:設計導航按鈕控制虛擬鍵盤
14.4.4案例:自定義虛擬鍵盤鍵
14.4.5案例:自定義快捷編輯菜單
14.5開關按鈕
14.5.1添加開關按鈕
14.5.2案例:使用開關按鈕控制界面背景
14.6分段控件
14.6.1添加分段控件
14.6.2案例:使用分段控件控制界面背景
14.6.3案例:動態控制分段控件
14.7滑塊控件
14.7.1添加滑塊控件
14.7.2案例:設計控件
14.7.3案例:使用滑塊控制透明度
14.8圖像控件
14.8.1添加圖像控件
14.8.2案例:預覽圖片
14.8. 3案例:設計幻燈片
14.9進度條
14.9.1添加進度條
14.9.2案例:設計進度條
14.10活動指示器
14.10.1添加活動指示器
14.10.2案例:設計活動指示器和進度條
14.11警告框
14.11.1創建警告框
14.11.2案例:設計警告框
14.12操作表
14.13日期選擇器
14.13.1添加日期選擇器
14.13.2案例:設計倒計時
14.14通用選擇器
14.14.1添加通用選擇器
14.14.2案例:設計單列選擇器
14.14.3案例:自定義選擇器視圖
14.15微調器
14.15.1添加微調器
14.15.2案例:設計微調器
14.16網頁控件
14.16.1添加網頁控件
14.16.2案例:設計網頁控件
14.17小結
第15章使用控件(下)
視頻講解:117分鐘
15.1工具條
15.1.1添加工具條
15.1.2案例:設計工具條
15.2搜索條
15.2.1添加搜索條
15.2.2案例:設計搜索條
15.2.3案例:設計顯示列表
15.3導航條
15.3.1使用導航條
15.3.2案例:使用UINavigationController 
15.4表格控制器
15.4.1表視圖概述
15.4.2添加表格
15.4.3自定義單元格
15.4.4案例:設計表格
15.4.5案例:編輯單元格
15.4.6案例:編輯表格
15.4.7案例:表格分區
15.5標籤頁
15.5.1使用UITabBar 
15.5.2案例:設計標籤頁1 
15.5.3案例:設計標籤頁2 
15.6頁控件
15.6.1分頁控件
15.6.2案例:使用UIPageControl 
15.6.3案例:使用UIPageViewController 
15.7小結
第16章移動繪圖
視頻講解:35分鐘
16.1基本概念
16.1.1繪製週期
16.1.2坐標系統
16.1.3圖形上下文
16.1.4點和像素
16.1.5顏色空間
16.1.6圖像格式
16.1.7定制繪製
16.1.8繪製性能
16.1.9圖像質量
16.2Quartz2D 
16.2.1頁面
16.2.2圖形上下文
16.2.3路徑
16.2.4顏色空間
16.2.5變換
16.2.6陰影
16.2.7梯度
16.2.8透明層
16.2.9使用PDF文檔
16.3案例實戰
16.3.1案例:繪製圖形
16.3.2案例:繪製線條
16.3.3案例:繪製文本
16.3.4案例:繪製路徑
16.3.5案例:繪製曲線
16.3.6案例:設計畫板
16.4小結
第17章動畫設計
視頻講解:14分鐘
17.1OpenGLES 
17.1.1OpenGLES概述
17.1.2配置上下文
17.1.3OpenGLES繪製
17.2OpenGLES應用
17.2.1項目的創建及設置
17.2. 2上下文的創建
17.2.3渲染緩存的創建
17.2.4幀緩存的創建
17.2.5屏幕的清理
17.2.6OpenGLView和應用程序委託關聯
17.3CoreAnimation 
17.3.1層和變換
17.3.2樹層結構
17.3.3層上下文和層行為
17.3.4動畫
17.3.5事務
17.3.6動畫層佈局
17.4案例實戰
17.4.1案例:設計過渡動畫
17.4.2案例:設計屬性動畫
17.4.3案例:設計路徑動畫
17.5小結
第18章多媒體開發
視頻講解:26分鐘
18.1使用聲音
18.1.1音頻編解碼
18.1.2音頻回放和錄製格式
18.1.3音頻會話
18.1.4播放音頻
18.1.5通過iPod媒體庫訪問接口播放媒體項
18.1.6使用系統聲音服務播放短聲音及觸發震動
18.1.7通過AVAudioPlayer類輕鬆播放聲音
18.1.8用音頻隊列服務播放和控制聲音
18.1.9創建一個音頻隊列對象
18.1.10控制回放音量
18.1.11指示回放音量
18.1.12同時播放多路聲音
18.1.13使用OpenAL播放和定位聲音
18.1.14錄製音頻
18.1.15解析音頻流
18.1.16iOS系統上的音頻單元支持
18.1 .17iPhone音頻的最佳實踐
18.2使用視頻
18.2.1錄製視頻
18.2.2播放視頻文件
18.3案例實戰
18.3.1案例:播放音效
18.3.2案例:播放音樂
18.3.3案例:播放視頻
18.3.4案例:錄製音頻
18.3.5案例:錄製視頻
18.4小結
第19章設備管理
視頻講解:28分鐘
19.1硬件檢測
19.2配件通信
19.2.1配件基礎
19.2.2聲明協議
19.2.3連接配件
19.2.4監控配件
19.3使用加速計
19.3.1選擇更新頻率
19.3.2分離重力數據
19.3.3分離實時運動數據
19.3.4獲取設備方向
19.4使用位置和方向
19.4.1獲取當前位置
19.4.2獲取方向事件
19.5使用地圖
19.5.1添加地圖視圖
19.5.2縮放和移動地圖
19.5. 3顯示用戶當前位置
19.5.4坐標和像素切換
19.5.5顯示註解
19.5.6添加和移除註解對象
19.5.7定義註解視圖
19.5.8創建註解視圖
19.5.9處理註解視圖中的事件
19.5.10獲取地標信息
19.6使用照相機
19.7使用照片庫
19.8使用郵件
19.9案例實戰
19.9.1案例:管理通信設備
19.9.2案例:獲取加速度、陀螺儀、磁場數據
19.9.3案例:獲取移動數據
19.9.4案例:獲取位置信息
19.9.5案例:地圖定位
19.10小結
第20章文件和數據操作
視頻講解:24分鐘
20.1文件操作
20.1.1iPhone常用目錄
20.1.2獲取程序目錄路徑
20.1.3文件更新
20.1 .4文件備份和恢復
20.2數據讀寫
20.2.1文件數據的讀寫
20.2.2屬性列表數據的讀寫
20.2.3用歸檔器對數據進行讀寫
20.2.4將數據寫到Documents目錄
20.2.5從Documents目錄對數據進行讀取
20.2.6保存狀態信息
20.3SQLite 
20.3.1數據類型
20.3.2常用函數及返回編碼
20.3.3操作數據庫
20.3.4創建表
20.3.5操作數據語句
20.3.6數據查詢
20.4案例實戰
20.4.1案例:使用屬性列表設計備忘錄
20.4.2案例:使用SQLite設計單詞本
20.5小結
第21章綜合案例:搶撲克
視頻講解:8分鐘
21.1設計提示框交互項目
21.1.1使用UIAlertView 
21.1 .2保存時間值
21.1.3添加圖像文件
21.2設計時間差視圖控制器
21.2.1建立NSData、UIImageView對象和IBAction方法
21.2.2定義UIAlertView和遊戲控件屬性
21.3構建撲克遊戲控件
21.3.1添加撲克遊戲控件
21.3.2設置遊戲背景視圖檢查器
21.3.3設置遊戲撲克圖像檢查器
21.3.4設置遊戲透明按鈕檢查器
21.4小結
第22章綜合案例:電子琴
22.1創建音頻工具項目
22.1.1設置屏幕橫向顯示
22.1.2添加背景圖像和聲音文件
22.1.3添加音頻工具框架
22.1.4AudioToolbox框架的作用
22.2定義電子琴的交互方法
22.2.1建立音頻文件播放方法和播放動態
22.2.2定義琴鍵屬性值
22.3構建電子琴界面
22.3.1設置電子琴視圖背景
22.3 .2添加控件
22.3.3設置電子琴背景圖檢查器
22.3.4設置電子琴鍵的檢查器
22.4小結
第23章綜合案例:吃豆人
視頻講解:7分鐘
23.1創建UtilityApplication圖像移動按鈕項目
23.1.1添加移動圖像和聲音文件
23.1.2添加支持動畫和聲音文件的框架
23.2移動圖像操作的視圖控制器
23.2.1建立UIImageView、按鈕方向操作和音頻播放方法
23.2.2定義圖像屬性值和方向操作交互
23.3在InterfaceBuilder中構建吃豆人主頁
23.3.1構建吃豆人圖像和背景圖像
23.3.2構建吃豆人移動按鈕
23.4在InterfaceBuilder中構建吃豆人簡介副頁
23.5小結
第24章綜合案例:打磚塊
視頻講解:19分鐘
24.1創建UtilityApplication項目
24.1.1添加打磚塊的圖像和聲音文件
24.1.2添加框架文件
24.1.3添加UIImageView控制器
24.1.4自定義UIImageView視圖檢查器
24.2打磚塊的MainViewController交互方法
24.2.1建立遊戲分數控件、操作交互和音頻播放方法
24.2.2定義遊戲的操作和屬性值
24.3在InterfaceBuilder內構建BoardView 
24.3.1添加NSObject 
24.3.2設置NSObject身份
24.4在InterfaceBuilder中構建打磚塊遊戲主頁
24.5在InterfaceBuilder中構建打磚塊簡介副頁
24.6小結


作者介紹


劉燕,國內知名iOS技術作家,iOS技術顧問,高級培訓講師,移動開發專家。曾擔任過51CTO社區iOS技術顧問,精通iOS、Android和HTML5等移動開發技術。先後主持開發過多網絡遊戲的iOS和Android客戶端開發,在App Store上發布多款遊戲和應用軟件,擅長移動平台的應用和遊戲類項目開發。長期為中國移動研究院、雲南移動、東軟、方正科技、惠普、NTT、深圳康拓普、上海財富168、天津港務局、福州軟件園、廣州軟件園等企事業單位授課。




相關書籍

就這樣愛上iPhone 6s/iPad與iOS 9|果粉輕鬆玩透必備200技

作者 Apple超級玩家 蘋果梗

2017-10-01

IOS Unit Testing by Example: Xctest Tips and Techniques Using Swift

作者 Reid Jon

2017-10-01

Head First Android Development: A Learner's Guide to Building Android Apps with Kotlin, 3/e

作者 Griffiths Dawn David

2017-10-01