瘋狂iOS 講義(上) Objective-C 2.0與iPhone/iPad應用開發基礎

broadviewbj發表於2013-11-29

瘋狂iOS 講義(上) Objective-C 2.0iPhone/iPad應用開發基礎(國內首部iOS 7相關著作,小夥伴們,學好iPhone/iPad應用開發,我們一起做土豪吧)

李剛

ISBN978-7-121-19107-7

20141月出版

定價:99.00

684

16


編輯推薦

內容最詳盡的iOS 7平臺iPhone/iPad應用開發指引

獲獎無數的瘋狂講義系列最新作品

密集的程式碼註釋,幫你讀懂程式碼、領悟真諦

內有“瘋狂連連看”等案例的完整實現

內容提要

本書以最新的 iOS 7.0Xcode 5 為平臺,全面介紹 iOS 應用開發的基礎知識。全書從 Objective-C 基本語法開始,詳細介紹了 Objective-C 的基本語法結構、Objective-C 的物件導向特徵、Foundation 框架的核心類庫用法、檔案 I/O 體系等知識,掌握 Objective-C 語言是 iOS 引用開發的基礎。之後,本書將帶領讀者掌握 iOS 應用開發的基本理論以及 iOS 應用的 MVC 設計和事件處理程式設計,重點介紹 iOS 介面程式設計、iOS 應用的生命週期、Quartz 2D 繪圖、座標變換、Core Image 濾鏡、Core Animation 動畫等內容。最後介紹了一個《瘋狂連連看》遊戲例項。

本書並不侷限於介紹 iOS 程式設計的各種理論知識,而是從“專案驅動”的角度來講授理論,全書一共包括近百個例項,這些示範性的例項既可幫讀者更好地理解各知識點在實際開發中的應用,也可供讀者在實際開發時作為參考,拿來就用。

本書為所有打算深入掌握 iOS 程式設計的讀者而編寫,適合各層次的 iOS 學習者和開發者閱讀,也適合作為大學教育、培訓機構的 iOS 教材。但如果只是想簡單涉獵 iOS 應用開發,則本書過於龐大,不適合閱讀。

目錄

1章 iOS應用與開發環境   1

1.1  Objective-CiOS簡介  2

1.1.1  Objective-C簡介  2

1.1.2  iOS簡介  3

1.2  搭建iOS開發環境   3

1.2.1  下載並安裝XcodeSDK    4

1.2.2  安裝輔助工具和文件   6

1.3  第一個Objective-C程式 6

1.3.1  使用文字編輯器開發Objective-C程式   7

1.3.2  使用Xcode工具開發Objective-C程式   9

1.4  熟悉Xcode  10

1.4.1  建立iOS專案 11

1.4.2  熟悉導航皮膚 12

1.4.3  熟悉檢查器皮膚   14

1.4.4  熟悉庫皮膚   15

1.4.5  使用Xcode的幫助系統 17

1.5  小結   20

2章 資料型別和運算子    21

2.1  註釋   22

2.2  識別符號和變數   23

2.2.1  分隔符   23

2.2.2  識別符號規則   25

2.2.3  Objective-C關鍵字    25

2.3  資料型別分類   25

2.4  基本資料型別   26

2.4.1  整型 26

2.4.2  NSLog輸出函式及格式字元  27

2.4.3  字元型   29

2.4.4  浮點型   30

2.4.5  列舉型   31

2.4.6  BOOL型別 32

2.5  型別轉換   34

2.5.1  自動型別轉換 34

2.5.2  強制型別轉化 36

2.5.3  表示式型別的自動提升 36

2.6  運算子 37

2.6.1  算術運算子   37

2.6.2  賦值運算子   39

2.6.3  位運算子 40

2.6.4  擴充套件後的賦值運算子   42

2.6.5  比較運算子   42

2.6.6  邏輯運算子   43

2.6.7  逗號運算子   43

2.6.8 三目運算子    44

2.6.9  運算子的結合性和優先順序   45

2.7  小結   46

3章 流程控制與陣列  47

3.1  順序結構   48

3.2  分支結構   48

3.2.1  if條件語句   48

3.2.2  switch分支語句   52

3.3  迴圈結構   54

3.3.1  while迴圈語句    54

3.3.2  do while迴圈語句 56

3.3.3  for迴圈  56

3.3.4  巢狀迴圈 59

3.4  控制迴圈結構   60

3.4.1  使用break結束迴圈   61

3.4.2  使用continue結束本次迴圈    61

3.4.3  使用return結束函式  62

3.5  goto語句   62

3.6  陣列   64

3.6.1  定義陣列 64

3.6.2  陣列的初始化 65

3.6.3  使用陣列 66

3.6.4  多維陣列 67

3.6.5  多維陣列的初始化 68

3.6.6  字元陣列、字串與結束標誌   73

3.6.7  輸出字串和字串函式   74

3.6.8  陣列的應用舉例   76

3.7  小結   78

4章 C語言特性   79

4.1  函式   80

4.1.1  定義函式 80

4.1.2  函式宣告 83

4.1.3  函式的引數傳遞機制   84

4.1.4  遞迴函式 88

4.1.5  陣列作為函式引數 89

4.1.6  內部函式與外部函式   93

4.2  區域性變數與全域性變數 94

4.2.1  區域性變數 95

4.2.2  全域性變數 96

4.2.3  外部全域性變數與內部全域性變數   97

4.2.4  動態儲存與靜態儲存   99

4.3  預處理 101

4.3.1  使用#define#undef執行宏定義    101

4.3.2  帶引數的宏定義   103

4.3.3  使用#ifdef#ifndef#else#endif執行條件編譯   104

4.3.4  使用#if#elif#else#endif執行條件編譯    106

4.3.5  #include#import    107

4.4  指標   108

4.4.1  指標的概念   108

4.4.2  指標變數及其基本用法 109

4.4.3  指標變數作為函式引數 111

4.5  指標與陣列 113

4.5.1  指向陣列的指標變數   113

4.5.2  指標運算 114

4.5.3  陣列變數作為函式引數 116

4.5.4  指向多維陣列的指標變數   118

4.6  字串與指標   121

4.6.1  使用字元指標表示字串   121

4.6.2  字元指標作為函式引數 122

4.7  函式與指標 123

4.7.1  用函式指標變數呼叫函式   123

4.7.2  用函式指標變數作為函式引數   124

4.7.3  返回指標的函式   126

4.8  指標陣列和指向指標的指標   127

4.8.1  指標陣列與main()函式形參 127

4.8.2  指向指標變數的指標   130

4.9  結構體 130

4.9.1  定義結構體   131

4.9.2  typedef語句  133

4.9.3  初始化結構體變數 134

4.9.4  結構體陣列   135

4.10      136

4.10.1  塊的基本語法    136

4.10.2  塊與區域性變數    137

4.10.3  直接使用塊作為引數  139

4.10.4  使用typedef定義塊變數型別  139

4.11  小結  140

5章 物件導向(上)  141

5.1  類和物件   142

5.1.1  定義類   142

5.1.2  物件的產生和使用 146

5.1.3  物件和指標   148

5.1.4  self關鍵字   150

5.1.5  id型別   153

5.2  方法詳解   154

5.2.1  方法的所屬性 154

5.2.2  形參個數可變的方法   155

5.3  成員變數   156

5.3.1  成員變數及其執行機制 156

5.3.2  模擬類變數   158

5.3.3  單例(Singleton)模式    159

5.4  隱藏和封裝 160

5.4.1  理解封裝 161

5.4.2  使用訪問控制符   161

5.4.3  理解@package訪問控制符   165

5.4.4  合成存取方法 166

5.4.5  使用點語法訪問屬性   171

5.5  鍵值編碼(KVC)與鍵值監聽(KVO172

5.5.1  簡單的KVC    172

5.5.2  處理不存在的key  175

5.5.3  處理nil   176

5.5.4  Key路徑  178

5.5.5  鍵值監聽(KVO  179

5.6  物件初始化 182

5.6.1  為物件分配空間   182

5.6.2  初始化方法與物件初始化   183

5.6.3  便利的初始化方法 185

5.7  類的繼承   187

5.7.1  繼承的特點   187

5.7.2  重寫父類的方法   189

5.7.3  super關鍵字  190

5.8  多型   193

5.8.1  多型性   193

5.8.2  指標變數的強制型別轉換   196

5.8.3  判斷指標變數的實際型別   197

5.9  小結   198

6章 物件導向(下)  199

6.1  Objective-C的包裝類    200

6.1.1  它們不是包裝類   200

6.1.2  NSValueNSNumber   201

6.2  處理物件   202

6.2.1  列印物件和description方法   202

6.2.2  ==isEqual方法 205

6.3  類別與擴充套件 209

6.3.1  類別(category 210

6.3.2  利用類別對類進行模組化設計   212

6.3.3  使用類別來呼叫私有方法   212

6.3.4  擴充套件(extension    214

6.4  協議(protocol)與委託 216

6.4.1  規範、協議與介面 216

6.4.2  使用類別實現非正式協議   217

6.4.3  正式協議的定義   218

6.4.4  遵守(實現)協議 219

6.4.5  協議與委託(delegate   222

6.5  使用@try處理異常   225

6.5.1  使用@try...@catch...@finally捕捉異常 226

6.5.2  訪問異常資訊 228

6.5.3  使用@finally回收資源 229

6.5.4  丟擲異常與自定義異常類   230

6.6  Objective-C反射機制    232

6.6.1  獲得Class    232

6.6.2  檢查繼承關係 233

6.6.3  動態呼叫方法 235

6.7  手動記憶體管理   237

6.7.1  物件的引用計數   239

6.7.2  物件所屬權   241

6.7.3  方法中的保留和釋放   243

6.7.4  使用自動釋放池   245

6.7.5  自動釋放池的銷燬時機與工作過程   246

6.7.6  臨時物件與事件迴圈中的自動釋放池     248

6.7.7  手動記憶體管理的規則總結   249

6.8  自動引用計數   250

6.8.1  自動引用計數概述 250

6.8.2  @autoreleasepool   251

6.9  小結   251

7章 Foundation框架詳解  252

7.1  字串(NSStringNSMutableString   253

7.1.1  建立字串   253

7.1.2  NSString的常用功能   254

7.1.3  可變字串(NSMutableString    255

7.2  日期與時間 256

7.2.1  日期與時間(NSDate 256

7.2.2  日期格式器(NSDateFormatter    258

7.2.3  日曆(NSCalendar)與日期元件(NSDateComponents 260

7.2.4  定時器(NSTimer    261

7.3  物件複製   263

7.3.1  copymutableCopy方法   263

7.3.2  NSCopyingNSMutableCopy協議    264

7.3.3  淺複製與深複製   266

7.3.4  setter方法的複製選項 268

7.4  Objective-C集合概述    269

7.5  陣列(NSArrayNSMutableArray   270

7.5.1  NSArray的功能與用法  270

7.5.2  對集合元素整體呼叫方法   275

7.5.3  NSArray進行排序   276

7.5.4  使用列舉器遍歷NSArray集合元素   278

7.5.5  快速列舉(for…in  279

7.5.6  可變陣列(NSMutableArray   279

7.5.7  NSArrayKVCKVO  281

7.6  集合(NSSetNSMutableSet   282

7.6.1  NSSet的功能與用法    282

7.6.2  NSSet判斷集合元素重複的標準  285

7.6.3  NSMutableSet的功能與用法 288

7.6.4  NSCountedSet的功能與用法 289

7.7  有序集合(NSOrderedSetNSMutableOrderedSet 290

7.8  字典(NSDictionaryNSMutableDictionary 291

7.8.1  NSDictionary的功能與用法 292

7.8.2  NSDictionarykey排序 295

7.8.3  NSDictionarykey進行過濾 297

7.8.4  使用自定義類作為NSDictionarykey   298

7.8.5  NSMutableDictionary的功能與用法  299

7.9  謂詞   301

7.9.1  定義謂詞 301

7.9.2  使用謂詞過濾集合 302

7.9.3  在謂詞中使用佔位符引數   303

7.9.4  謂詞表示式語法   305

7.9  小結   307

8章 檔案I/O 308

8.1  使用NSDataNSMutableData 309

8.2  使用NSFileManager管理檔案和

8.2.1  訪問檔案屬性和內容   311

8.2.2  建立、刪除、移動、複製   312

8.2.3  檢視目錄包含的內容   313

8.3  使用NSPathUtilities.h管理路徑 314

8.4  使用ProcessInfo獲取程式資訊   316

8.5  使用NSFileHandle處理檔案IO    317

8.6  使用NSURL讀取網路資源 319

8.7  使用NSBundle處理專案相關資源  320

8.8  物件歸檔   322

8.8.1  使用NSKeyedArchiver歸檔 322

8.8.2  實現NSCoding協議    323

8.8.3  使用NSData完成自定義歸檔    326

8.8.4  使用歸檔實現深複製   329

8.9  小結   330

9章 iOS應用開發入門 331

9.1  iOS專案開始 332

9.1.1  iOS專案包含的檔案    332

9.1.2  Interface Builder簡介    333

9.1.3  nib檔案新增控制元件   336

9.1.4  修改控制元件屬性 338

9.1.5  UIView支援的屬性 339

9.1.6  UILabel支援的屬性    340

9.2  MVC    342

9.2.1  從程式入口開始   342

9.2.2  應用程式委託 343

9.2.3  理解iOSMVC    346

9.2.4  掌握UIViewController控制器  347

9.3  事件機制   349

9.3.1  程式獲取控制元件的兩種方式   349

9.3.2  事件處理的方式   353

9.4  Storyboard的改進之處   358

9.5  程式碼控制UI介面    360

9.5.1  不使用介面佈局檔案開發UI介面    360

例項:無介面佈局檔案開發iOS應用    360

9.5.2  使用程式碼建立UI介面  362

例項:動態新增、刪除標籤    362

9.4.3  自定義UI控制元件    364

例項:跟隨手指運動的小球    365

9.6  美化iOS應用   367

9.5.1  定製iOS應用圖示 367

9.5.2  設定iOS應用的啟動畫面   367

9.6  小結   369

10章 iOS應用的介面程式設計  370

10.1  UI控制元件概述    371

10.1.1  活動、靜態和被動控制元件    371

10.1.2  UIControl基類介紹   372

10.2  按鈕(UIButton  373

例項:豐富多彩的按鈕    376

10.3  文字框(UITextField 377

例項:使用者登入介面  379

10.3.1  完成輸入後關閉鍵盤  380

10.3.2  觸碰背景關閉鍵盤    381

10.4  多行文字控制元件(UITextView    382

10.4.1  UIScrollView支援的屬性  383

10.4.2  使用委託物件處理UITextView事件 385

例項:導航按鈕關閉虛擬鍵盤  385

例項:自定義鍵盤附件關閉虛擬鍵盤    387

10.4.3  自定義選擇內容後的選單  389

10.5  開關按鈕(UISwitch  390

例項:使用開關控制手電筒    390

10.6  分段控制元件(UISegmentedControl    391

例項1:透過分段控制元件控制背景顏色 393

例項2:動態增加、刪除分段   394

10.7  影像控制元件(UIImageView   395

例項1:圖片瀏覽器   396

例項2幻燈片播放器 398

10.8  進度條    399

10.8.1  UIProgressView  399

例項:定製進度條    400

10.8.2  UIActivityIndicatorView 401

10.9  拖動條(UISlider    403

例項:透過拖動滑塊改變圖片透明度    404

10.10  警告框(UIAlertView)與UIActionSheet 405

10.10.1  UIAlertView的基本用法  405

10.10.2  帶輸入框的UIAlertView  407

10.10.3  使用UIActionSheet  409

10.11  日期選擇器(UIDatePicker   411

例項:倒數計時器  413

10.12  選擇器(UIPickerView   415

10.12.1  單列選擇器 416

10.12.2  多列選擇器 417

10.12.3  相互依賴的多列選擇器   419

10.12.4  自定義選擇器檢視   421

例項:老虎機遊戲    421

10.13  微調器(UIStepper  426

10.14  網頁控制元件(UIWebView    428

例項:迷你瀏覽器    430

10.15  工具條(UIToolbar  431

例項:自定義工具條控制元件  433

10.16  表格(UITableView)與表格控制器 (UITableViewController   435

10.16.1  簡單表格 437

10.16.2  處理單元格的選中   440

例項:編輯選中行    441

10.16.3  定製表格行 446

例項1:繼承UITableViewCell定製表格行   446

例項2:使用動態單元格原型定製表格行 449

例項3:利用xib檔案定製表格行   451

10.16.4  編輯表格   454

10.16.5  多分割槽表格以及分割槽索引 459

10.16.6  直接使用   UITableViewController   461

10.16.7  靜態單元格 464

10.16.8  使用iOS 6新增的UIRefresh Controller重新整理表格  465

10.17  搜尋條(UISearchBar    467

10.17.1  使用搜尋條 468

10.17.2  使用UISearchDisplayController  471

例項:下拉選單顯示搜尋結果  471

10.18  導航條(UINavigationBar)與導航 條控制器(UINavigationController   475

10.18.1  使用導航條 475

10.18.2  使用UINavigationController 477

例項:檢視、編輯圖書資訊    479

10.18.3  使用segue控制過渡 484

10.18.4  使用segue控制導航 487

10.19  網格(UICollectionView)與網格控制器(UICollectionViewController   490

10.19.1  UICollectionView的功能與用法   492

10.19.2  使用UICollectionViewDelegate FlowLayout定製佈局   497

例項:單元格大小不同的網格  497

10.19.3  擴充套件UICollectionViewLayout定製佈局    498

例項:環形佈局的UICollectionView    499

10.19.4  多分割槽網格 502

例項:帶頁首、頁尾的多分割槽網格  502

10.19.5  直接使用UICollectionViewController 505

10.20  標籤條(UITabBar)與標籤頁控制器(UITabBarController   509

10.20.1  使用UITabBar   509

10.20.2  使用UITabBarController 511

10.20.3  Storyboard中使用UITabBarController  514

10.21  頁控制元件(UIPageControl)與頁控制器(UIPageViewController    515

10.21.1  UIPageControlUIScrollView結合使用   515

10.21.2  使用UIPageViewController   519

10.22  iPad應用開發 523

10.22.1  使用iPad專用控制元件:UISplitViewController 523

10.22.2  使用UIPopoverController實現浮動視窗   530

10.22.3  開發同時相容iPhoneiPad 的應用   532

10.23  小結 535

11章 管理iOS應用的執行 537

11.1  自動旋轉機制  538

11.1.1  配置應用支援的方向  538

11.1.2  指定檢視控制器支援的方向    540

11.2  旋轉時重構使用者介面    541

11.3  旋轉時切換檢視    543

11.4  iOS應用的生命週期 546

11.4.1  應用程式的狀態  547

11.4.2  應用程式啟動過程    548

11.4.3  程式入口:main函式  549

11.4.4  響應中斷    550

11.4.5  進入後臺    552

11.4.6  返回前臺執行    553

11.4.7  應用程式終止    554

11.4.8  Main Run Loop   554

11.5  小結  555

12章 圖形、影像與動畫   556

12.1  使用UIImageCGImage處理點陣圖 557

12.1.1  顯示動畫    557

例項:蝴蝶飛舞  559

12.1.2  CGImageCGImageRef    559

12.2  Quartz 2D繪圖 560

12.2.1  Quartz 2D繪圖基礎:CGContextRef 560

12.2.2  繪製幾何圖形    563

12.2.3  點線模式    565

12.2.4  繪製文字    569

12.2.5  設定陰影    572

12.2.6  使用路徑    573

例項:繪製任意多角星    577

12.2.7  繪製曲線    578

例項:使用曲線繪製多瓣花朵  579

12.2.8  在記憶體中繪圖    580

例項:繪圖板    583

12.2.9  繪製點陣圖    587

例項:擴充套件UIImage的功能    588

12.3  圖形變換  593

12.3.1  使用座標變換    593

12.3.2  座標變換與路徑結合使用  594

例項:雪花飄飄  594

12.3.3  使用矩陣變換    596

12.4  控制疊加模式  599

12.5  處理填充  604

12.5.1  漸變填充    605

12.5.2  模式填充    609

12.6  使用Core Image濾鏡   614

12.7  動畫  621

12.7.1  Core Animation動畫基礎  621

12.7.2  使用CALayer 622

12.7.3  使用CATransition控制過渡動畫   625

12.7.4  使用屬性動畫    629

12.7.5  控制移動路徑    634

例項:繞圈遊動的小魚    634

12.8  小結  636

13章 瘋狂連連看 637

13.1  遊戲簡介  638

13.2  開發遊戲介面  639

13.2.1  開發介面佈局    639

13.2.2  開發遊戲介面控制元件    639

13.2.3  處理方塊之間的連線線    644

13.3  遊戲的狀態資料模型    646

13.3.1  定義資料模型    646

13.3.2  初始化遊戲狀態資料  647

13.4  載入介面的圖片    651

13.5  實現遊戲檢視控制器    653

13.6  實現遊戲邏輯  655

13.6.1  定義FKGameService的介面程式碼    655

13.6.2  實現FKGameService   656

13.6.3  獲取觸碰點的方塊    657

13.6.4  判斷兩個方塊是否可以相連    658

13.6.5  定義獲取通道的工具方法  659

13.6.6  沒有轉折點的橫向連線    661

13.6.7  沒有轉折點的縱向連線    661

13.6.8  一個轉折點的連線    662

13.6.9  兩個轉折點的連線    665

13.6.10  找出最短距離   671

13.7  小結  673

作者簡介

李剛,從事10多年的軟體行業從業經歷,現任瘋狂軟體教育中心教學總監。

51cto專家門診特邀嘉賓。

曾任廣州電信、廣東龍泉科技等公司的技術培訓導師,廣東技術師範學院電腦科學系的兼職副教授。

培訓的學生已在華為、IBM、阿里軟體、網易、電信盈科等名企就職。

國內著名高階IT技術作家,已出版瘋狂體系圖書均已得到廣泛的市場認同,多次重印成為超級暢銷書,並被多所“985”“211”院校選作教材。部分圖書已被翻譯成繁體中文版、授權到臺灣地區。

前言

移動網際網路熱潮在全世界引起了巨大反響,移動網際網路正在改變著傳統網際網路的格局,全世界的IT公司爭相將業務重心向移動網際網路轉型,移動網際網路業務也成為業內最大的利潤增長點。

Apple公司的iOS系統作為與Android並駕齊驅的兩大作業系統,具有非常完善的生態圈,而且使用者具有良好的付費習慣,吸引了大量的專業軟體和小團隊,甚至包括個人使用者。

Apple公司提供的App Store作為應用程式市場,它賦予了缺乏市場運作能力的第三方開發商和草根開發者新的商業機會:開發商和草根開發者只要專注於應用的開發,而市場和銷售則交給Apple公司管理。在這種模式下,即使小型團隊(甚至個人開發者)也可以創造財富神話。

Apple公司在全世界IT行業是一個極富傳奇色彩的公司,它一度成為全球市值最大的IT公司,Apple公司的產品對於年輕人始終具有神奇的魔力,尤其是iPhoneiPad兩款廣為人知的產品,更是讓無數追求時尚的年輕人為之痴迷。目前Apple公司也在逐步推出iTV(基於iOS系統的智慧電視)、iWatch(智慧手錶)等各種個人電子消費品,這些產品也吊足了時尚一族的胃口。Apple公司獨特的設計、市場運作方式、商業模式和公司經營管理理念,也是眾多IT公司競相研究、模仿的物件。

本書是一本介紹iOS應用開發的實用圖書,全面介紹了iOS 7.0平臺上應用開發各方面的知識。與市面上介紹iOS程式設計的一些圖書不同,本書並沒有花太多篇幅介紹Apple公司、iOS的發展歷史(因為這些內容到處都是),完全沒有介紹App Store(因為它只是一個交易網站,與iOS開發無關,但有些圖書甚至用一章內容介紹它)。

本書只用了一章來介紹如何搭建iOS開發環境和Xcode工具的用法。全書內容大致可分為兩部分。

第一部分詳細介紹Objective-C這門看似冷門的程式語言——實際上,Objective-C現在非常熱門,Objective-C語言目前雄踞程式語言排行第3的位置(前兩名是JavaC)。本書在介紹Objective-C基本語法、物件導向語法時沒有過多地使用IDE工具,而是帶領讀者使用最基本的文字編輯器學習程式設計,使讀者真正掌握Objective-C語法。

第二部分介紹iOS開發的基礎,詳細介紹iOS專案的結構、各檔案的作用及其呼叫關係,並歸納了iOS應用的MVC設計、在程式碼中獲取UI控制元件的3種方式(必須先獲取UI控制元件,然後才可修改它來更新使用者介面),以及iOS應用事件處理的3種方式,透過這種方式可以讓讀者快速掌握iOS程式設計的思路。第二部分的重點是iOS應用的UI介面開發和圖形、影像處理——全書全面、系統地介紹了iOS的各種UI控制元件的功能、用法及其定製方法,並透過相應的例項程式給出了示範。

本書是《瘋狂iOS講義》(上卷),因此關於手勢、資料庫操作、多執行緒程式設計、網路通訊、cocos2dBox2DSpriteKit等高階內容將會在下卷介紹。

需要說明的是,本書只是一本介紹iOS應用開發的圖書,不是一本關於所謂思想的書,不要指望學習本書能提高你所謂的“iOS思想,所以那些希望提高程式設計思想的讀者請不要閱讀本書。

本書更不是一本看完之後可以吹噓、炫耀的書——因為本書並沒有堆砌一堆深奧的新名詞和高深的思想,本書保持了瘋狂體系的一貫風格:操作步驟詳細、程式設計思路清晰,語言平實。只要讀者想學習iOS開發,無須擔心沒有Apple電腦(網路上使用普通電腦裝黑蘋果的文章鋪天蓋地),也無須擔心沒有iPhoneXcode整合的模擬器在大部分場景下完全可以勝任開發)——即使讀者以前沒有程式設計基礎,只要有決心和毅力,閱讀本書不會有任何問題(本書從最基本的Objective-C語法開始講起)。

認真看完本書,並把書中所有的示例都練習一遍,本書帶給你的只是9個字:看得懂、學得會、做得出。本書最後綜合運用前面介紹的UI程式設計、繪圖等知識編寫了一個《瘋狂連連看》小遊戲,因此認真閱讀本書,掌握書中知識後,即可開發各種棋類、牌類、益智類的小遊戲。

不管怎樣,只要讀者在閱讀本書時遇到了技術問題,都可以登入瘋狂Java聯盟)與廣大學習者交流,筆者也會透過該平臺與大家一起交流、學習。

本書還具有如下幾個特點。

1.知識全面,覆蓋面廣

本書深入闡述了Objective-C的基本語法,包括類、物件、方法、成員變數、KVCKVO、繼承和多型等物件導向的基礎知識,也包括類別(category)、擴充套件(extension)、協議與委託、記憶體管理與ARCObjective-C的高階知識。本書詳細介紹了iOS全部圖形介面控制元件的功能和用法,事件處理機制,iOS圖形、影像處理。

2.內容實際,實用性強

本書並不侷限於枯燥的理論介紹,而是採用專案驅動的方式來講授知識點,每個知識點幾乎都可找到對應的參考例項。本書最後還提供了《瘋狂連連看》遊戲應用,具有極高的參考價值。

3.講解詳細,上手容易

只要讀者有學習的決心和毅力,學完本書內容後就打下紮實的iOS開發基礎,再透過本書下捲來掌握iOS開發的高階知識,即可完全勝任企業中 iOS開發者的實際要求。

 

本書為所有打算深入掌握iOS程式設計的讀者而編寫,適合各層次的iOS學習者和開發者閱讀,也適合作為大學教育、培訓機構的iOS教材。但如果只是想簡單涉獵iOS應用開發,則本書過於龐大,不適合閱讀。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13164110/viewspace-1061611/,如需轉載,請註明出處,否則將追究法律責任。

相關文章