定 價:¥68.00
作 者: | 和凌志 著 |
出版社: | 電子工業(yè)出版社 |
叢編項: | |
標 簽: | 程序設(shè)計 計算機/網(wǎng)絡(luò) 移動開發(fā) |
ISBN: | 9787121328282 | 出版時間: | 2017-10-01 | 包裝: | |
開本: | 頁數(shù): | 字數(shù): |
iOS基礎(chǔ)篇
第1章 iOS基礎(chǔ)知識 2
1.1 Objective-C語法簡介 2
1.1.1 Objective-C的奇特之處 2
1.1.2 如何聲明一個實例變量 4
1.1.3 Objective-C字符串 5
1.2 Objective-C的對象類型與基本數(shù)據(jù)類型 6
1.2.1 對象類型與基本數(shù)據(jù)類型的混合使用 6
1.2.2 對象類型與基本數(shù)據(jù)類型的轉(zhuǎn)換 7
1.3 不可變數(shù)組與可變數(shù)組 7
1.3.1 不可變數(shù)組(NSArray)的特征 8
1.3.2 可變數(shù)組(NSMutableArray)的特征 8
1.3.3 如何遍歷數(shù)組中的對象 8
1.3.4 NSArray與NSMutableArray的應(yīng)用 10
1.4 不可變字典與可變字典 11
1.4.1 不可變字典(NSDictionary) 11
1.4.2 可變字典(NSMutableDictionary) 12
1.4.3 如何遍歷字典中的對象 12
1.4.4 NSArray與NSDictionary的應(yīng)用 13
1.4.5 創(chuàng)建類的對象 13
1.5 iOS應(yīng)用程序概述 14
1.5.1 應(yīng)用程序的入口 14
1.5.2 應(yīng)用程序委托(AppDelegate) 14
1.5.3 UIApplication應(yīng)用場景 15
1.5.4 一種簡單的永久數(shù)據(jù)存儲方式 16
1.6 iOS定制化控件 17
1.6.1 定制化View的創(chuàng)建 17
1.6.2 小標簽(UILabel),大用場 19
1.6.3 如何實現(xiàn)輸入框隨鍵盤上移 20
1.7 視圖的層級管理 23
1.7.1 創(chuàng)建視圖的方法 23
1.7.2 如何從父視圖中移除子視圖 25
1.7.3 登錄頁面的實現(xiàn) 26
1.8 iOS編程規(guī)范 28
1.8.1 代碼的可維護性 29
1.8.2 面向?qū)ο蟮木幊趟枷?nbsp;29
1.8.3 優(yōu)先編寫輕量級的ViewController 30
1.9 小結(jié) 31
第2章 視圖控制器之間的傳值 32
2.1 通過Delegate實現(xiàn)ViewController之間的傳值 32
2.1.1 Delegate概述 32
2.1.2 學(xué)習(xí)Delegate的困惑 32
2.1.3 從一道經(jīng)典的面試題說起 33
2.1.4 學(xué)習(xí)Delegate常出現(xiàn)的幾個誤區(qū) 33
2.1.5 Delegate技術(shù)難點在哪里 34
2.1.6 數(shù)據(jù)逆向傳送一定要通過Delegate嗎 34
2.1.7 Delegate應(yīng)用五步曲 35
2.1.8 Delegate優(yōu)勢 38
2.2 通過單例實現(xiàn)ViewController之間的傳值 38
2.2.1 單例的創(chuàng)建 39
2.2.2 單例的初始化 40
2.2.3 單例設(shè)計模式的本質(zhì) 41
2.2.4 通過單例實現(xiàn)傳值 41
2.2.5 單例模式在登錄模塊中的應(yīng)用 42
2.2.6 單例模式的優(yōu)勢 44
2.3 通過KVO實現(xiàn)ViewController之間的傳值 44
2.3.1 什么是KVC 44
2.3.2 什么是KVO 45
2.3.3 KVO的特點 46
2.3.4 使用KVO的步驟 46
2.3.5 KVO的實現(xiàn)方法 46
2.3.6 KVO應(yīng)用注意事項 50
2.4 通過NSNotification實現(xiàn)ViewController之間的傳值 50
2.4.1 NSNotification的定義 51
2.4.2 NSNotificationCenter 51
2.4.3 發(fā)出通知 51
2.4.4 接收通知 52
2.4.5 移除通知 52
2.4.6 異步模式下的通知操作 53
2.4.7 通過NSNotification實現(xiàn)ViewController之間的傳值 53
2.4.8 NSNotification與Delegate的區(qū)別 55
2.4.9 監(jiān)聽系統(tǒng)自帶的NSNotification 56
2.5 小結(jié) 58
第3章 App與服務(wù)器接口的定義 59
3.1 關(guān)于JSON的認識 59
3.2 App與服務(wù)器接口的定義 61
3.2.1 App與后臺的接口設(shè)計 61
3.2.2 后臺返回的數(shù)據(jù)格式 61
3.2.3 后臺返回的提示信息 62
3.3 JSON與Model的轉(zhuǎn)換 62
3.3.1 JSONModel常見的用法 63
3.3.2 JSONModel的幾個屬性用法 67
3.4 小結(jié) 69
第4章 CollectionView的應(yīng)用 70
4.1 CollectionView與TableView孰優(yōu)孰劣 70
4.1.1 TableView的應(yīng)用場景 70
4.1.2 CollectionView的應(yīng)用場景 71
4.1.3 CollectionView與TableView概念對比 71
4.1.4 CollectionView與TableView的性能對比 71
4.2 什么是UICollectionView 71
4.3 實現(xiàn)一個簡單的UICollectionView 72
4.4 UICollectionViewCell視圖層級 73
4.5 UICollectionViewDataSource 74
4.6 關(guān)于Cell的重用 74
4.7 UICollectionViewDelegate 75
4.8 UICollectionViewLayout 76
4.9 實現(xiàn)一個簡單的瀑布流 77
4.9.1 通過手動編碼創(chuàng)建UICollectionView 78
4.9.2 直接拖曳一個CollectionViewController 81
4.9.3 基于Xib創(chuàng)建一個UICollectionViewCell 86
4.10 自定義瀑布流的應(yīng)用場景 88
4.11 自定義Flow Layout進行瀑布流布局 88
4.11.1 自定義瀑布流的應(yīng)用場景 89
4.11.2 自定義瀑布流的實現(xiàn)思路 90
4.11.3 創(chuàng)建自定義的Flow Layout 90
4.11.4 創(chuàng)建自定義的CollectionViewCell 92
4.11.5 關(guān)于initWithFrame:方法的使用 93
4.11.6 自定義瀑布流的完整實現(xiàn) 94
4.11.7 UICollectionView相關(guān)的類圖 96
4.11.8 如何實現(xiàn)UICollectionView的輪播 97
4.12 CollectionView與TableView的區(qū)別 98
4.13 圖片輪播的實現(xiàn)思路 98
4.14 CollectionView注意事項 99
4.15 小結(jié) 100
Web與Native混合開發(fā)模式
第5章 Block的應(yīng)用 102
5.1 Block緣起 102
5.2 Block概述 103
5.3 Block的聲明、實現(xiàn)與調(diào)用 104
5.3.1 Block的聲明 104
5.3.2 Block的實現(xiàn) 106
5.3.3 Block的調(diào)用 108
5.3.4 Block外部變量的訪問 109
5.4 Block的應(yīng)用場景 110
5.4.1 Block用于completionHandler 110
5.4.2 Block聲明為實例變量 113
5.4.3 typedef Block 114
5.5 通過Block實現(xiàn)視圖控制器之間的逆向傳值 115
5.5.1 應(yīng)用場景 115
5.5.2 代碼實現(xiàn) 115
5.6 小結(jié) 118
第6章 iOS網(wǎng)絡(luò)請求 119
6.1 iOS網(wǎng)絡(luò)請求概述 119
6.2 AFNetworking的應(yīng)用 119
6.2.1 AFNetworking概述 119
6.2.2 AFNetworking框架使用方法 121
6.2.3 影響網(wǎng)絡(luò)請求的幾個條件 122
6.2.4 善用URL宏定義 124
6.2.5 URl接口應(yīng)統(tǒng)一管理 124
6.2.6 AFNetworking的二次封裝 126
6.3 AFNetworking的序列化問題 126
6.3.1 AFNetworking請求格式 127
6.3.2 AFNetworking響應(yīng)格式 128
6.4 異步請求數(shù)據(jù)并刷新UI頁面 128
6.5 遠程文件下載 130
6.5.1 基于AFNetworking的文件下載 130
6.5.2 基于NSURLSession的文件下載 132
6.5.3 網(wǎng)絡(luò)安全訪問設(shè)置 133
6.6 小結(jié) 134
第7章 JavaScript基礎(chǔ) 135
7.1 JavaScript語法 135
7.2 變量的聲明與賦值 136
7.3 如何判斷兩個字符串是否相等 137
7.4 創(chuàng)建JavaScript對象的三種方法 138
7.5 函數(shù)聲明與函數(shù)表達式 140
7.6 可立即調(diào)用的函數(shù)表達式 143
7.7 循環(huán)的實現(xiàn) 145
7.8 防止JavaScript自動插入分號 146
7.9 嚴格模式 147
7.10 如何運行與調(diào)試JavaScript代碼 148
7.10.1 把JavaScript代碼內(nèi)嵌到HTML頁面中 148
7.10.2 通過Node.js運行JavaScript代碼 150
7.11 JavaScript的面向?qū)ο笤O(shè)計思想 150
7.12 JavaScript的異步編程模式 151
7.12.1 Promise對象 152
7.12.2 生成Promise實例對象 152
7.12.3 Promise原型方法 154
7.12.4 Promise的catch方法 154
7.13 如何在HTML中嵌入JavaScript 155
7.13.1 <script>標簽 155
7.13.2 <script>標簽的位置 156
7.13.3 嵌入JavaScript代碼與外部文件引用 157
7.14 JavaScript與JSON 157
7.15 小結(jié) 158
第8章 Web與Native的交互 159
8.1 混合開發(fā)模式概述 159
8.1.1 Webkit簡介 159
8.1.2 JavaScriptCore簡介 160
8.1.3 Objective-C調(diào)用JavaScript 160
8.2 網(wǎng)頁調(diào)用iOS的原生方法 162
8.2.1 應(yīng)用場景 162
8.2.2 技術(shù)實現(xiàn)思路 163
8.2.3 代碼實現(xiàn) 163
8.2.4 代碼解讀 164
8.2.5 Objective-C與JavaScript的數(shù)據(jù)類型 166
8.2.6 Objective-C訪問HTML文件 167
8.3 iOS調(diào)用JavaScript 168
8.3.1 Objective-C調(diào)用JavaScript代碼 169
8.3.2 Objective-C獲取JavaScript中的變量 170
8.3.3 在Objective-C中,調(diào)用帶有參數(shù)的JavaScript函數(shù) 170
8.3.4 在Objective-C中調(diào)用不帶參數(shù)的JavaScript函數(shù) 171
8.4 JavaScript調(diào)用Objective-C代碼 172
8.4.1 JavaScript調(diào)用Objective-C代碼 172
8.4.2 JavaScript調(diào)用Objective-C函數(shù)對象 173
8.5 小結(jié) 174
全棧開發(fā)技術(shù)
第9章 Node.js入門指南 176
9.1 概述 176
9.2 Node.js生態(tài) 176
9.3 Node開發(fā)環(huán)境的搭建 177
9.4 Node.js驗證 177
9.5 第一個Node.js工程 178
9.5.1 創(chuàng)建Node.js工程 178
9.5.2 運行Node.js工程 179
9.5.3 Node.js服務(wù)的自動重啟 181
9.6 小結(jié) 182
第10章 Express――后端框架 183
10.1 概述 183
10.2 Express工程的創(chuàng)建 183
10.3 Express中的GET與POST請求 184
10.3.1 GET請求 184
10.3.2 POST請求 185
10.4 小結(jié) 185
第11章 AngularJS――Google前端框架 186
11.1 AngularJS概述 186
11.2 AngularJS指令概述 188
11.2.1 AngualrJS指令:ng-app 188
11.2.2 AngularJS指令:ng-init 189
11.2.3 AngularJS指令:ng-model 189
11.2.4 ng-app與ng-model示例 189
11.2.5 AngularJS指令:ng-click 191
11.3 AngularJS構(gòu)建單頁面應(yīng)用 191
11.3.1 單頁面應(yīng)用的優(yōu)勢 191
11.3.2 輕松構(gòu)建單頁面應(yīng)用 193
11.3.3 單頁面應(yīng)用的實現(xiàn) 194
11.4 AngularJS的加載 199
11.4.1 AngularJS的引用 199
11.4.2 加載AngularJS靜態(tài)資源庫 199
11.5 AngularJS控制器 200
11.5.1 AngularJS控制器的創(chuàng)建 200
11.5.2 AngularJS控制器的應(yīng)用 200
11.5.3 AngularJS的數(shù)據(jù)綁定 202
11.6 $scope用法 204
11.7 小結(jié) 207
第12章 MongoDB――文檔數(shù)據(jù)庫 208
12.1 MongoDB概述 208
12.1.1 關(guān)于MongoDB 208
12.1.2 MongoDB的歷史 208
12.1.3 MongoDB的優(yōu)勢 209
12.2 MongoDB的安裝與應(yīng)用 209
12.2.1 MongoDB的安裝 209
12.2.2 啟動MongoDB 210
12.2.3 MongoDB的可視化管理 210
12.3 用mongoose操作MongoDB 213
12.3.1 mongoose概述 213
12.3.2 初識mongoose 214
12.3.3 mongoose的安裝 214
12.3.4 mongoose連接數(shù)據(jù)庫 214
12.3.5 Schema 215
12.3.6 Model及其操作 216
12.3.7 插入 216
12.3.8 查詢 216
12.3.9 更新 218
12.3.10 刪除 219
12.4 小結(jié) 220
第13章 MEAN全棧技術(shù)的實現(xiàn) 221
13.1 應(yīng)用場景 221
13.2 安裝Express 221
13.3 創(chuàng)建Express工程 222
13.4 構(gòu)建登錄頁面 227
13.4.1 構(gòu)建登錄的靜態(tài)頁面 227
13.4.2 構(gòu)建路由 230
13.4.3 添加路由中間件 231
13.5 構(gòu)建注冊頁面 232
13.5.1 靜態(tài)頁面的創(chuàng)建 232
13.5.2 構(gòu)建注冊頁面的路由 234
13.5.3 添加路由中間件 237
13.6 小結(jié) 237
參考文獻 238