瘋狂iOS講義(上)(第2版)——Objective-C 2.0與iPhone/iPad套用開發基礎

瘋狂iOS講義(上)(第2版)——Objective-C 2.0與iPhone/iPad套用開發基礎

《瘋狂iOS講義(上)(第2版)——Objective-C2.0與iPhone/iPad套用開發基礎(含CD光碟1張)》是2015年4月電子工業出版社出版的圖書,作者是李剛。

基本介紹

  • 書名:瘋狂iOS講義(上)(第2版)——Objective-C2.0與iPhone/iPad套用開發基礎(含CD光碟1張)
  • 作者:李剛
  • ISBN:978-7-121-25613-4
  • 頁數:716
  • 定價:99.00元 
  • 出版社:電子工業出版社
  • 出版時間:2015年4月
  • 開本:16
內容簡介,編輯推薦,內容提要,目錄,作者簡介,

內容簡介

移動網際網路已經成為當今世界發展最快、市場潛力最大、前景最誘人的業務,iOS作為與Android並駕齊驅的作業系統,具有完善的生態圈,而且用戶具有良好的付費習慣,因此iOS套用開發者具有良好的發展前景:不僅可入職移動網際網路企業,更可以個人、小團隊方式獨立創業。
《瘋狂iOS講義(上)(第2版)——Objective-C 2.0與iPhone/iPad套用開發基礎》是《瘋狂iOS講義(上)》的第2版,《瘋狂iOS講義(上)(第2版)——Objective-C 2.0與iPhone/iPad套用開發基礎》基於最新的iOS 8.1、Xcode6.1為平台,全面介紹了iOS套用開發的基礎知識。書中每個案例、每個截圖都全面升級到iOS 8.1。《瘋狂iOS講義(上)(第2版)——Objective-C2.0與iPhone/iPad套用開發基礎》全面、細緻地介紹了Objective-C的面向對象語法、Foundation框架的核心類庫用法、檔案 IO體系等知識,掌握Objective-C語言是iOS套用開發的基礎。掌握Objective-C語言之後,《瘋狂iOS講義(上)(第2版)——Objective-C 2.0與iPhone/iPad套用開發基礎》將帶領讀者掌握iOS套用開發的基本理論以及iOS套用的MVC設計和事件處理編程,重點介紹了iOS界面編程、iOS套用的生命周期、Quartz 2D繪圖、坐標變換、Core Image濾鏡、Core Animation動畫等內容,掌握這些基礎內容之後即可開發簡單的iOS遊戲,因此《瘋狂iOS講義(上)(第2版)——Objective-C 2.0與iPhone/iPad套用開發基礎》最後介紹了一個瘋狂連連看的實例。

編輯推薦

瘋狂iOS講義(第2版)隨書附帶光碟提供書中所有案例的原始碼,書中每個案例、每個截圖都基於iOS 8.1,全部案例通過真機測試。
瘋狂iOS講義(第2版)介紹了iOS 8.1新增的UIVisualEffectView控制項,以及iOS 8.1增強的自動布局功能,並通過示例示範了如何利用Size Class和自動布局來開發自定義不同螢幕尺寸的iOS套用。
作者李剛已出版深受廣大App開發人員喜歡的《瘋狂iOS講義》(上)(下)冊《瘋狂Swift講義》等iOS開發暢銷書。

內容提要

《瘋狂iOS講義(上)(第2版)——Objective-C 2.0與iPhone/iPad套用開發基礎》並不局限於介紹iOS編程的各種理論知識,而是從“項目驅動”的角度來講授理論,全書一共包括近百個實例,這些示範性的實例既可幫助讀者更好地理解各知識點在實際開發中的套用,也可供讀者在實際開發時作為參考、拿來就用。如果讀者在閱讀本書時遇到了技術問題,可以登錄瘋狂Java聯盟發帖,筆者將會及時予以解答。
《瘋狂iOS講義(上)(第2版)——Objective-C 2.0與iPhone/iPad套用開發基礎》為所有打算深入掌握iOS編程的讀者而編寫,適合各種層次的iOS學習者和開發者閱讀,也適合作為大學教育、培訓機構的iOS教材。但如果只是想簡單涉獵iOS套用開發,則《瘋狂iOS講義(上)(第2版)——Objective-C 2.0與iPhone/iPad套用開發基礎》過於龐大,不適合閱讀。

目錄

第1章 iOS套用與開發環境 1
1.1 Objective-C與iOS簡介 2
1.1.1 Objective-C簡介 2
1.1.2 iOS簡介 3
1.2 搭建iOS開發環境 3
1.2.1 下載並安裝Xcode和SDK 4
1.2.2 安裝輔助工具和文檔 6
1.3 第一個Objective-C程式 7
1.3.1 使用文本編輯器開發Objective-C程式 7
1.3.2 使用Xcode工具開發Objective-C程式 9
1.4 熟悉Xcode 11
1.4.1 創建iOS項目 11
1.4.2 熟悉導航面板 13
1.4.3 熟悉檢查器面板 16
1.4.4 熟悉庫面板 17
1.4.5 使用Xcode的幫助系統 19
1.5 本章小結 22
第2章 數據類型和運算符 23
2.1 注釋 24
2.2 標識符和變數 25
2.2.1 分隔設定 25
2.2.2 標識符規則 27
2.2.3 Objective-C關鍵字 27
2.3 數據類型分類 27
2.4 基本數據類型 28
2.4.1 整型 28
2.4.2 NSLog輸出函式及格式字元 29
2.4.3 字元型 31
2.4.4 浮點型 32
2.4.5 枚舉型 33
2.4.6 BOOL類型 35
2.5 類型轉換 36
2.5.1 自動類型轉換 36
2.5.2 強制類型轉換 38
2.5.3 表達式類型的自動提升 38
2.6 運算符 39
2.6.1 算術運算符 39
2.6.2 賦值運算符 42
2.6.3 位運算符 42
2.6.4 擴展後的賦值運算符 44
2.6.5 比較運算符 45
2.6.6 邏輯運算符 45
2.6.7 逗號運算符 46
2.6.8 三目運算符 46
2.6.9 運算符的結合性和優先權 47
2.7 本章小結 48
第3章 流程控制與數組 49
3.1 順序結構 50
3.2 分支結構 50
3.2.1 if條件語句 50
3.2.2 switch分支語句 54
3.3 循環結構 56
3.3.1 while循環語句 56
3.3.2 do while循環語句 58
3.3.3 for循環 59
3.3.4 嵌套循環 62
3.4 控制循環結構 63
3.4.1 使用break結束循環 63
3.4.2 使用continue結束本次循環 64
3.4.3 使用return結束函式 64
3.5 goto語句 65
3.6 數組 67
3.6.1 定義數組 67
3.6.2 數組的顯式初始化 68
3.6.3 使用數組 69
3.6.4 多維數組 70
3.6.5 多維數組的初始化 71
3.6.6 字元數組、字元串與結束標誌 77
3.6.7 輸出字元串和字元串函式 78
3.6.8 數組的套用舉例 80
3.7 本章小結 81
第4章 C語言特性 82
4.1 函式 83
4.1.1 定義函式 83
4.1.2 函式聲明 86
4.1.3 函式的參數傳遞機制 87
4.1.4 遞歸函式 91
4.1.5 數組作為函式參數 92
4.1.6 內部函式與外部函式 96
4.2 局部變數與全局變數 97
4.2.1 局部變數 98
4.2.2 全局變數 99
4.2.3 外部全局變數與內部全局變數 100
4.2.4 動態存儲與靜態存儲 102
4.3 預處理 104
4.3.1 使用#define、#undef執行宏定義 105
4.3.2 帶參數的宏定義 106
4.3.3 使用#ifdef、#ifndef、#else、#endif執行條件編譯 107
4.3.4 使用#if、#elif、#else、#endif執行條件編譯 109
4.3.5 #include與#import 110
4.4 指針 111
4.4.1 指針的概念 111
4.4.2 指針變數及其基本用法 113
4.4.3 指針變數作為函式參數 114
4.5 指針與數組 117
4.5.1 指向數組的指針變數 117
4.5.2 指針運算 117
4.5.3 數組變數作為函式參數 120
4.5.4 指向多維數組的指針變數 122
4.6 字元串與指針 124
4.6.1 使用字元指針表示字元串 124
4.6.2 字元指針作為函式參數 125
4.7 函式與指針 126
4.7.1 用函式指針變數調用函式 126
4.7.2 用函式指針變數作為函式參數 128
4.7.3 返回指針的函式 129
4.8 指針數組和指向指針變數的指針 130
4.8.1 指針數組與main()函式形參 131
4.8.2 指向指針變數的指針 133
4.9 結構體 134
4.9.1 定義結構體 134
4.9.2 typedef語句 136
4.9.3 初始化結構體變數 137
4.9.4 結構體數組 139
4.10 塊 139
4.10.1 塊的基本語法 140
4.10.2 塊與局部變數 141
4.10.3 直接使用塊作為參數 142
4.10.4 使用typedef定義塊類型 142
4.11 本章小結 144
第5章 面向對象(上) 145
5.1 類和對象 146
5.1.1 定義類 146
5.1.2 對象的產生和使用 150
5.1.3 對象和指針 152
5.1.4 self關鍵字 154
5.1.5 id類型 157
5.2 方法詳解 158
5.2.1 方法的所屬性 158
5.2.2 形參個數可變的方法 159
5.3 成員變數 160
5.3.1 成員變數及其運行機制 160
5.3.2 模擬類變數 163
5.3.3 單例(Singleton)模式 164
5.4 隱藏和封裝 165
5.4.1 理解封裝 165
5.4.2 使用訪問控制符 165
5.4.3 理解@package訪問控制符 169
5.4.4 合成存取方法 170
5.4.5 使用點語法訪問屬性 175
5.5 鍵值編碼(KVC)與鍵值監聽(KVO) 176
5.5.1 簡單的KVC 176
5.5.2 處理不存在的key 179
5.5.3 處理nil值 181
5.5.4 key路徑 182
5.5.5 鍵值監聽(KVO) 183
5.6 對象初始化 186
5.6.1 為對象分配空間 187
5.6.2 初始化方法與對象初始化 187
5.6.3 便利的初始化方法 189
5.7 類的繼承 191
5.7.1 繼承的特點 191
5.7.2 重寫父類的方法 193
5.7.3 super關鍵字 194
5.8 多態 197
5.8.1 多態性 197
5.8.2 指針變數的強制類型轉換 200
5.8.3 判斷指針變數的實際類型 201
5.9 本章小結 202
第6章 面向對象(下) 203
6.1 Objective-C的包裝類 204
6.1.1 它們不是包裝類 204
6.1.2 NSValue和NSNumber 205
6.2 處理對象 206
6.2.1 列印對象和description方法 206
6.2.2 ==和isEqual:方法 208
6.3 類別與擴展 212
6.3.1 類別(category) 213
6.3.2 利用類別對類進行模組化設計 215
6.3.3 使用類別來調用私有方法 215
6.3.4 擴展(extension) 217
6.4 協定(protocol)與委託 219
6.4.1 規範、協定與接口 219
6.4.2 使用類別實現非正式協定 220
6.4.3 正式協定的定義 221
6.4.4 遵守(實現)協定 222
6.4.5 協定與委託(delegate) 225
6.5 使用@try處理異常 228
6.5.1 使用@try...@catch...@finally捕獲異常 229
6.5.2 訪問異常信息 231
6.5.3 使用@finally回收資源 232
6.5.4 拋出異常與自定義異常類 233
6.6 Objective-C反射機制 235
6.6.1 獲得Class 235
6.6.2 檢查繼承關係 236
6.6.3 動態調用方法 237
6.7 手動記憶體管理 240
6.7.1 對象的引用計數 242
6.7.2 對象所屬權 244
6.7.3 方法中的保留和釋放 247
6.7.4 使用自動釋放池 248
6.7.5 自動釋放池的銷毀時機與工作過程 250
6.7.6 臨時對象與事件循環中的自動釋放池 251
6.7.7 手動記憶體管理的規則總結 252
6.8 自動引用計數 253
6.8.1 自動引用計數概述 253
6.8.2 @autoreleasepool塊 254
6.9 本章小結 254
第7章 Foundation框架詳解 256
7.1 字元串(NSString與NSMutableString) 257
7.1.1 創建字元串 257
7.1.2 NSString的常用功能 258
7.1.3 可變字元串(NSMutableString) 259
7.2 日期與時間 260
7.2.1 日期與時間(NSDate) 261
7.2.2 日期格式器(NSDateFormatter) 262
7.2.3 日曆(NSCalendar)與日期組件(NSDateComponents) 264
7.2.4 定時器(NSTimer) 265
7.3 對象複製 267
7.3.1 copy與mutableCopy方法 267
7.3.2 NSCopying與NSMutableCopying協定 268
7.3.3 淺複製與深複製 270
7.3.4 setter方法的複製選項 272
7.4 Objective-C集合概述 273
7.5 數組(NSArray與NSMutableArray) 274
7.5.1 NSArray的功能與用法 274
7.5.2 對集合元素整體調用方法 279
7.5.3 對NSArray進行排序 280
7.5.4 使用枚舉器遍歷NSArray集合元素 282
7.5.5 快速枚舉(for-in) 283
7.5.6 可變數組(NSMutableArray) 283
7.5.7 NSArray的KVC與KVO 285
7.6 集合(NSSet與NSMutableSet) 286
7.6.1 NSSet的功能與用法 286
7.6.2 NSSet判斷集合元素重複的標準 289
7.6.3 NSMutableSet的功能與用法 292
7.6.4 NSCountedSet的功能與用法 293
7.7 有序集合(NSOrderedSet與NSMutableOrderedSet) 294
7.8 字典(NSDictionary與NSMutableDictionary) 296
7.8.1 NSDictionary的功能與用法 296
7.8.2 對NSDictionary的key排序 299
7.8.3 對NSDictionary的key進行過濾 301
7.8.4 使用自定義類作為NSDictionary的key 302
7.8.5 NSMutableDictionary的功能與用法 304
7.9 謂詞 305
7.9.1 定義謂詞 305
7.9.2 使用謂詞過濾集合 306
7.9.3 在謂詞中使用占位符參數 308
7.9.4 謂詞表達式語法 309
7.10 本章小結 311
第8章 檔案I/O 312
8.1 使用NSData與NSMutableData 313
8.2 使用NSFileManager管理檔案和目錄 314
8.2.1 訪問檔案屬性和內容 315
8.2.2 創建、刪除、移動、複製 316
8.2.3 查看目錄包含的內容 317
8.3 使用NSPathUtilities.h管理路徑 318
8.4 使用NSProcessInfo獲取進程信息 320
8.5 使用NSFileHandle處理檔案IO 321
8.6 使用NSURL讀取網路資源 324
8.7 使用NSBundle處理項目相關資源 325
8.8 對象歸檔 326
8.8.1 使用NSKeyedArchiver歸檔 326
8.8.2 實現NSCoding協定 328
8.8.3 使用NSData完成自定義歸檔 331
8.8.4 使用歸檔實現深複製 333
8.9 本章小結 334
第9章 iOS套用開發入門 335
9.1 從iOS項目開始 336
9.1.1 iOS項目包含的檔案 336
9.1.2 Interface Builder簡介 337
9.1.3 添加控制項 339
9.1.4 修改控制項屬性 340
9.1.5 UIView支持的屬性 342
9.1.6 UILabel支持的屬性 344
9.2 MVC 346
9.2.1 程式入口 346
9.2.2 應用程式代理 347
9.2.3 理解iOS的MVC 349
9.2.4 掌握UIViewController控制器 350
9.3 事件機制 352
9.3.1 程式獲取控制項的兩種方式 352
9.3.2 事件處理的三種方式 358
9.4 代碼控制UI界面 364
9.4.1 不使用界面設計檔案開發UI界面 364
實例:無界面設計檔案開發iOS套用 364
9.4.2 使用代碼創建UI界面 366
實例:動態添加、刪除標籤 367
9.4.3 自定義UI控制項 369
實例:跟隨手指運動的小球 369
9.5 美化iOS套用 372
9.5.1 定製iOS套用圖示 372
9.5.2 定製iOS套用的啟動畫面 373
9.6 本章小結 375
第10章 iOS套用的界面編程 335
10.1 UI控制項概述 377
10.1.1 活動、靜態和被動控制項 377
10.1.2 UIControl基類介紹 377
10.2 按鈕(UIButton) 379
實例:豐富多彩的按鈕 381
10.3 文本框控制項(UITextField) 383
實例:用戶登錄界面 385
10.3.1 完成輸入後關閉鍵盤 386
10.3.2 觸碰背景關閉鍵盤 387
10.4 多行文本控制項(UITextView) 389
10.4.1 UIScrollView支持的屬性 390
10.4.2 使用委託對象處理UITextView事件 392
實例1:通過導航按鈕關閉虛擬鍵盤 392
實例2:通過自定義鍵盤附屬檔案關閉虛擬鍵盤 394
10.4.3 自定義選擇內容後的選單 396
10.5 開關按鈕(UISwitch) 397
實例:使用開關控制“手電筒” 398
10.6 分段控制項(UISegmentedControl) 399
實例1:通過分段控制項控制背景顏色 400
實例2:動態增加、刪除分段 401
10.7 圖像控制項(UIImageView) 402
實例1:圖片瀏覽器 404
實例2:“幻燈片”播放器 406
10.8 進度條 407
10.8.1 UIProgressView 407
實例:定製進度條 409
10.8.2 UIActivityIndicatorView 410
10.9 拖動條(UISlider) 412
實例:通過拖動滑塊改變圖片透明度 413
10.10 警告框(UIAlertView)與UIActionSheet 415
10.10.1 UIAlertView的基本用法 415
10.10.2 帶輸入框的UIAlertView 417
10.10.3 使用UIActionSheet 419
10.11 日期選擇器(UIDatePicker) 421
實例:倒計時器 423
10.12 選擇器(UIPickerView) 425
10.12.1 單列選擇器 426
10.12.2 多列選擇器 427
10.12.3 相互依賴的多列選擇器 429
10.12.4 自定義選擇器視圖 432
實例:“老虎機”遊戲 432
10.13 iOS 8新增的UIVisualEffectView 435
10.14 微調器(UIStepper) 438
10.15 網頁控制項(UIWebView) 440
實例:迷你瀏覽器 442
10.16 工具條(UIToolBar) 444
實例:自定義工具條控制項 446
10.17 表格(UITableView)與表格控制器(UITableViewController) 448
10.17.1 簡單表格 450
10.17.2 處理單元格的選中 454
實例:編輯選中行 454
10.17.3 定製表格行 459
實例1:繼承UITableViewCell定製表格行 459
實例2:使用動態單元格原型定製表格行 462
10.17.4 編輯表格 464
10.17.5 多分區表格以及分區索引 470
10.17.6 直接使用UITableViewController 472
10.17.7 靜態單元格 474
10.17.8 使用UIRefreshController刷新表格 477
10.18 搜尋條(UISearchBar) 479
10.18.1 使用搜尋條 480
10.18.2 使用UISearchDisplayController 483
實例:下拉列表顯示搜尋結果 483
10.19 導航條(UINavigationBar)與導航控制器(UINavigationController) 487
10.19.1 使用導航條 487
10.19.2 使用UINavigationController 489
實例:查看、編輯圖書信息 491
10.19.3 使用segue控制過渡 497
10.19.4 使用segue控制導航 501
10.20 格線(UICollectionView)與格線控制器(UICollectionViewController) 505
10.20.1 UICollectionView的功能與用法 508
10.20.2 使用UICollectionViewDelegateFlowLayout定製布局 512
實例:單元格大小不同的格線 513
10.20.3 擴展UICollectionViewLayout定製布局 514
實例:環形布局的UICollectionView 515
10.20.4 多分區格線 518
實例:帶頁眉、頁腳的多分區格線 519
10.20.5 直接使用UICollectionViewController 523
10.21 標籤條(UITabBar)與標籤頁控制器(UITabBarController) 526
10.21.1 使用UITabBar 527
10.21.2 使用UITabBarController 528
10.21.3 在Storyboard中使用UITabBarController 531
10.22 頁控制項(UIPageControl)與頁控制器(UIPageViewController) 533
10.22.1 UIPageControl與UIScrollView結合使用 533
10.22.2 使用UIPageViewController 537
10.23 iPad套用開發 541
10.23.1 使用iPad專用控制項:UISplitViewController 542
10.23.2 使用UIPopoverController實現浮動視窗 549
10.23.3 開發同時兼容iPhone與iPad的套用 551
10.24 本章小結 555
第11章 管理iOS套用的運行 556
11.1 iOS設備尺寸和自動旋轉機制 557
11.1.1 配置套用支持的方向 557
11.1.2 指定視圖控制器支持的方向 559
11.2 iOS 8增強的自動布局功能 560
11.2.1 自動布局的添加方式 560
11.2.2 使用自動布局適應不同尺寸的螢幕 566
11.2.3 使用Size Class適應螢幕旋轉 570
11.3 iOS套用的生命周期 574
11.3.1 應用程式的狀態 575
11.3.2 應用程式啟動過程 576
11.3.3 程式入口:main函式 578
11.3.4 回響中斷 578
11.3.5 進入後台 580
11.3.6 返回前台運行 581
11.3.7 應用程式終止 582
11.3.8 Main Run Loop 582
11.4 本章小結 583
第12章 圖形、圖像與動畫 584
12.1 使用UIImage和CGImage處理點陣圖 585
12.1.1 顯示動畫 585
實例:蝴蝶飛舞 587
12.1.2 CGImage與CGImageRef 588
12.2 Quartz 2D繪圖 588
12.2.1 Quartz 2D繪圖基礎:CGContextRef 588
12.2.2 繪製幾何圖形 591
12.2.3 點線模式 593
12.2.4 繪製文本 597
12.2.5 設定陰影 601
12.2.6 使用路徑 602
實例:繪製任意多角星 606
12.2.7 繪製曲線 607
實例:使用曲線繪製多瓣花朵 608
12.2.8 在記憶體中繪圖 609
實例:繪圖板 612
12.2.9 繪製點陣圖 617
實例:擴展UIImage的功能 617
12.3 圖形變換 622
12.3.1 使用坐標變換 622
12.3.2 坐標變換與路徑結合使用 623
實例:雪花飄飄 624
12.3.3 使用矩陣變換 625
12.4 控制疊加模式 628
12.5 處理填充 634
12.5.1 漸變填充 634
12.5.2 模式填充 639
12.6 使用Core Image濾鏡 644
12.7 動畫 652
12.7.1 Core Animation動畫基礎 652
12.7.2 使用CALayer 653
12.7.3 使用CATransition控制過渡動畫 656
12.7.4 使用屬性動畫 660
12.7.5 控制移動路徑 665
實例:繞圈遊動的小魚 665
12.8 本章小結 667
第13章 瘋狂連連看 668
13.1 遊戲簡介 669
13.2 開發遊戲界面 670
13.2.1 開發界面布局 670
13.2.2 開發遊戲界面控制項 671
13.2.3 處理方塊之間的連線線 676
13.3 遊戲的狀態數據模型 677
13.3.1 定義數據模型 677
13.3.2 初始化遊戲狀態數據 678
13.4 載入界面的圖片 682
13.5 實現遊戲視圖控制器 684
13.6 實現遊戲邏輯 686
13.6.1 定義FKGameService的接口代碼 686
13.6.2 實現FKGameService 687
13.6.3 獲取觸碰點的方塊 688
13.6.4 判斷兩個方塊是否可以相連 689
13.6.5 定義獲取通道的工具方法 691
13.6.6 沒有轉折點的橫向連線 692
13.6.7 沒有轉折點的縱向連線 693
13.6.8 有一個轉折點的連線 693
13.6.9 有兩個轉折點的連線 696
13.6.10 找出最短距離 702
13.7 本章小結 704

作者簡介

李剛,十多年軟體行業開發從業經驗,瘋狂軟體教育中心教學總監。
瘋狂Java實訓營創始人,瘋狂Java體系原創圖書作者。
廣東技術師範學院計算機科學系兼職副教授,51cto專家門診特邀嘉賓。
培訓的學生已在名企就職。
國內著名高端IT技術作家,已出版《瘋狂Java講義》《瘋狂Android講義》《輕量級Java EE企業套用實戰》《瘋狂iOS講義(上)(下)》《瘋狂Ajax講義》《瘋狂XML講義》《經典Java EE企業套用實戰》《瘋狂HTML 5/CSS 3/JavaScript講義》《Struts 2.x權威指南》等著作。其中瘋狂Java體系圖書經多年沉澱,贏得極高的市場認同,多次重印成為暢銷書,並被多所“985”“211”院校選作教材。部分圖書已被翻譯成繁體中文版、授權到台灣地區。

相關詞條

熱門詞條

聯絡我們