瘋狂iOS講義(基礎篇)

書名:瘋狂iOS講義(基礎篇),語言:簡體中文,ISBN:9787121287930,頁數:728,出版社:電子工業出版社,作者:李剛,出版日期:2016/06/01,類別:電腦資訊
$ 648
 

內容簡介

本書基於《瘋狂iOS講義(上)》第2版升級而來,已真正升級成Swift、Objective-C雙語講解。本書所有案例(除前面介紹Objective-C語法部分之外)全部都提供Swift、Objective-C兩種語言的版本。本書以最新的iOS 9.2、Xcode 7.2為平台,全面介紹了iOS應用開發的基礎知識。書中每個案例、每個截圖都全面升級到iOS 9.2。本書全面、細致地介紹了Objective-C的面向對象語法、Foundation框架的核心類庫用法、文件 IO體系等,詳細講解了iOS應用開發的基本理論,以及iOS應用的MVC設計和事件處理編程,重點介紹了iOS界面編程、iOS應用的生命周期、Quartz 2D繪圖、坐標變換、Core Image濾鏡等內容,掌握這些基礎內容之后,即可開發出基礎的iOS App應用和簡單的iOS游戲。本書最后介紹了一個瘋狂連連看的實例。本書詳細介紹了iOS 9新增的UIAlertController、UIStackView控件,其中UIStackView正是為了自適應不同尺寸屏幕而設計的控件,可用於取代早期iOS開發中的約束(約束實在是太難以管理了)。本書還重點介紹了Xcode 7提供的Storyboard Reference,通過使用Storyboard Reference,可以對大型iOS App的界面設計進行分解、重構,從而保證項目具有更好的可維護性。本書從「項目驅動」的角度來講授理論,全書一共包括近百個實例,這些示范性的實例既可幫助讀者更好地理解各知識點在實際開發中的應用,也可供讀者在實際開發時作為參考,拿來就用。如果讀者在閱讀本書時遇到了技術問題,可以登錄瘋狂Java聯盟發帖,筆者將會及時予以解答。本書為所有打算深入掌握iOS編程的讀者而編寫,適合各種層次的iOS學習者和開發者閱讀,也適合作為大學教育、培訓機構的iOS教材。但如果只是想簡單涉獵iOS應用開發,則本書過於龐大,不適合閱讀。

本書基於《瘋狂iOS講義(上)》第2版升級而來,已真正升級成Swift、Objective-C雙語講解。本書所有案例(除前面介紹Objective-C語法部分之外)全部都提供Swift、Objective-C兩種語言的版本。本書以最新的iOS 9.2、Xcode 7.2為平台,全面介紹了iOS應用開發的基礎知識。書中每個案例、每個截圖都全面升級到iOS 9.2。本書全面、細致地介紹了Objective-C的面向對象語法、Foundation框架的核心類庫用法、文件 IO體系等,詳細講解了iOS應用開發的基本理論,以及iOS應用的MVC設計和事件處理編程,重點介紹了iOS界面編程、iOS應用的生命周期、Quartz 2D繪圖、坐標變換、Core Image濾鏡等內容,掌握這些基礎內容之后,即可開發出基礎的iOS App應用和簡單的iOS游戲。本書最后介紹了一個瘋狂連連看的實例。本書詳細介紹了iOS 9新增的UIAlertController、UIStackView控件,其中UIStackView正是為了自適應不同尺寸屏幕而設計的控件,可用於取代早期iOS開發中的約束(約束實在是太難以管理了)。本書還重點介紹了Xcode 7提供的Storyboard Reference,通過使用Storyboard Reference,可以對大型iOS App的界面設計進行分解、重構,從而保證項目具有更好的可維護性。本書從「項目驅動」的角度來講授理論,全書一共包括近百個實例,這些示范性的實例既可幫助讀者更好地理解各知識點在實際開發中的應用,也可供讀者在實際開發時作為參考,拿來就用。如果讀者在閱讀本書時遇到了技術問題,可以登錄瘋狂Java聯盟發帖,筆者將會及時予以解答。本書為所有打算深入掌握iOS編程的讀者而編寫,適合各種層次的iOS學習者和開發者閱讀,也適合作為大學教育、培訓機構的iOS教材。但如果只是想簡單涉獵iOS應用開發,則本書過於龐大,不適合閱讀。

李剛,十多年軟件開發從業經驗,瘋狂軟件教育中心教學總監。瘋狂Java實訓營創始人,瘋狂Java體系原創圖書作者。廣東技術師范學院計算機科學系兼職教授,51CTO專家門診特邀嘉賓。培訓的學生已在華為、IBM、阿里軟件、網易、電信盈科等名企就職。
 

目錄

第1章 iOS應用與開發環境
1.1 iOS簡介及其開發語言
1.1.1 Swift簡介
1.1.2 Objective-C簡介
1.1.3 iOS簡介
1.2 搭建iOS開發環境
1.2.1 下載並安裝Xcode和SDK
1.3第一個Objective-C程序
1.3.1 使用文本編輯器開發Objective-C
程序
1.3.2 使用Xcode工具開發Objective-C
程序
1.4 熟悉Xcode
1.4.1 創建iOS項目
1.4.2 熟悉導航面板
1.4.3 熟悉檢查器面板
1.4.4 熟悉庫面板
1.4.5 使用Xcode的幫助系統
1.5 本章小結

第2章 數據類型和運算符
2.1 注釋
2.2 標識符和變量
2.2.1 分隔符
2.2.2 標識符規則
2.2.3 Objective-C關鍵字
2.3 數據類型分類
2.4 基本數據類型
2.4.1 整型
2.4.2 NSLog輸出函數及格式字符
2.4.3 字符型
2.4.4 浮點型
2.4.5 枚舉型
2.4.6 BOOL類型
2.5 類型轉換
2.5.1 自動類型轉換
2.5.2 強制類型轉換
2.5.3 表達式類型的自動提升
2.6 運算符
2.6.1 算術運算符
2.6.2 賦值運算符
2.6.3 位運算符
2.6.4 擴展后的賦值運算符
2.6.5 比較運算符
2.6.6 邏輯運算符
2.6.7 逗號運算符
2.6.8 三目運算符
2.6.9 運算符的結合性和優先級
2.7 本章小結

第3章 流程控制與數組
3.1 順序結構
3.2 分支結構
3.2.1 if條件語句
3.2.2 switch分支語句
3.3 循環結構
3.3.1 while循環語句
3.3.2 do while循環語句
3.3.3 for循環
3.3.4 嵌套循環
3.4 控制循環結構
3.4.1 使用break結束循環
3.4.2 使用continue結束本次循環
3.4.3 使用return結束函數
3.5 goto語句
3.6 數組
3.6.1 定義數組
3.6.2 數組的顯式初始化
3.6.3 使用數組
3.6.4 多維數組
3.6.5 多維數組的初始化
3.6.6 字符數組、字符串與結束標志
3.6.7 輸出字符串和字符串函數
3.6.8 數組的應用舉例
3.7 本章小結

第4章 C語言特性
4.1 函數
4.1.1 定義函數
4.1.2 函數聲明
4.1.3 函數的參數傳遞機制
4.1.4 遞歸函數
4.1.5 數組作為函數參數
4.1.6 內部函數與外部函數
4.2 局部變量與全局變量
4.2.1 局部變量
4.2.2 全局變量
4.2.3 外部全局變量與內部全局變量
4.2.4 動態存儲與靜態存儲
4.3 預處理
4.3.1 使用#define、#undef執行
宏定義
4.3.2 帶參數的宏定義
4.3.3 使用#ifdef、#ifndef、#else、
#endif執行條件編譯
4.3.4 使用#if、#elif、#else、#endif
執行條件編譯
4.3.5 #include與#import
4.4 指針
4.4.1 指針的概念
4.4.2 指針變量及其基本用法
4.4.3 指針變量作為函數參數
4.5 指針與數組
4.5.1 指向數組的指針變量
4.5.2 指針運算
4.5.3 數組變量作為函數參數
4.5.4 指向多維數組的指針變量
4.6 字符串與指針
4.6.1 使用字符指針表示字符串
4.6.2 字符指針作為函數參數
4.7 函數與指針
4.7.1 用函數指針變量調用函數
4.7.2 用函數指針變量作為函數參數
4.7.3 返回指針的函數
4.8 指針數組和指向指針變量的指針
4.8.1 指針數組與main()函數形參
4.8.2 指向指針變量的指針
4.9 結構體
4.9.1 定義結構體
4.9.2 typedef語句
4.9.3 初始化結構體變量
4.9.4 結構體數組
4.10 塊
4.10.1 塊的基本語法
4.10.2 塊與局部變量
4.10.3 直接使用塊作為參數
4.10.4 使用typedef定義塊類型
4.11 本章小結

第5章 面向對象(上)
5.1 類和對象
5.1.1 定義類
5.1.2 對象的產生和使用
5.1.3 對象和指針
5.1.4 self關鍵字
5.1.5 id類型
5.2 方法詳解
5.2.1 方法的所屬性
5.2.2 形參個數可變的方法
5.3 成員變量
5.3.1 成員變量及其運行機制
5.3.2 模擬類變量
5.3.3 單例(Singleton)模式
5.4 隱藏和封裝
5.4.1 理解封裝
5.4.2 使用訪問控制符
5.4.3 理解@package訪問控制符
5.4.4 合成存取方法
5.4.5 使用點語法訪問屬性
5.5 鍵值編碼(KVC)與鍵值監聽
(KVO)
5.5.1 簡單的KVC
5.5.2 處理不存在的key
5.5.3 處理nil值
5.5.4 key路徑
5.5.5 鍵值監聽(KVO)
5.6 對象初始化
5.6.1 為對象分配空間
5.6.2 初始化方法與對象初始化
5.6.3 便利的初始化方法
5.7 類的繼承
5.7.1 繼承的特點
5.7.2 重寫父類的方法
5.7.3 super關鍵字
5.8 多態
5.8.1 多態性
5.8.2 指針變量的強制類型轉換
5.8.3 判斷指針變量的實際類型
5.9 本章小結

第6章 面向對象(下)
6.1 Objective-C的包裝類
6.1.1 它們不是包裝類
6.1.2 NSValue和NSNumber
6.2 處理對象
6.2.1 打印對象和description方法
6.2.2 ==和isEqual:方法
6.3 類別與擴展
6.3.1 類別(category)
6.3.2 利用類別對類進行模塊化設計
6.3.3 使用類別來調用私有方法
6.3.4 擴展(extension)
6.4 協議(protocol)與委托
6.4.1 規范、協議與接口
6.4.2 使用類別實現非正式協議
6.4.3 正式協議的定義
6.4.4 遵守(實現)協議
6.4.5 協議與委托(delegate)
6.5 使用@try處理異常
6.5.1 使用@try...@catch...@finally
捕獲異常
6.5.2 訪問異常信息
6.5.3 使用@finally回收資源
6.5.4 拋出異常與自定義異常類
6.6 Objective-C反射機制
6.6.1 獲得Class
6.6.2 檢查繼承關系
6.6.3 動態調用方法
6.7 手動內存管理
6.7.1 對象的引用計數
6.7.2 對象所屬權
6.7.3 方法中的保留和釋放
6.7.4 使用自動釋放池
6.7.5 自動釋放池的銷毀時機與
工作過程
6.7.6 臨時對象與事件循環中的
自動釋放池
6.7.7 手動內存管理的規則總結
6.8 自動引用計數
6.8.1 自動引用計數概述
6.8.2 @autoreleasepool塊
6.8.3 使用弱引用解決強引用循環
6.9 本章小結

第7章 Foundation框架詳解
7.1 字符串(NSString與
NSMutableString)
7.1.1 創建字符串
7.1.2 NSString的常用功能
7.1.3 可變字符串
(NSMutableString)
7.2 日期與時間
7.2.1 日期與時間(NSDate)
7.2.2 日期格式器
(NSDateFormatter)
7.2.3 日歷(NSCalendar)與日期
組件(NSDateComponents)
7.2.4 定時器(NSTimer)
7.3 對象復制
7.3.1 copy與mutableCopy方法
7.3.2 NSCopying與
NSMutableCopying協議
7.3.3 淺復制與深復制
7.3.4 setter方法的復制選項
7.4 Objective-C集合概述
7.5 數組(NSArray與NSMutableArray)
7.5.1 NSArray的功能與用法
7.5.2 對集合元素整體調用方法
7.5.3 對NSArray進行排序
7.5.4 使用枚舉器遍歷NSArray
集合元素
7.5.5 快速枚舉(for-in)
7.5.6 可變數組(NSMutableArray)
7.5.7 NSArray的KVC與KVO
7.6 集合(NSSet與NSMutableSet)
7.6.1 NSSet的功能與用法
7.6.2 NSSet判斷集合元素重復的標准
7.6.3 NSMutableSet的功能與用法
7.6.4 NSCountedSet的功能與用法
7.7 有序集合(NSOrderedSet與
NSMutableOrderedSet)
7.8 字典(NSDictionary與
NSMutableDictionary)
7.8.1 NSDictionary的功能與用法
7.8.2 對NSDictionary的key排序
7.8.3 對NSDictionary的key進行
過濾
7.8.4 使用自定義類作為
NSDictionary的key
7.8.5 NSMutableDictionary的功能
與用法
7.9 謂詞
7.9.1 定義謂詞
7.9.2 使用謂詞過濾集合
7.9.3 在謂詞中使用占位符參數
7.9.4 謂詞表達式語法
7.10 本章小結

第8章 文件I/O
8.1 使用NSData與NSMutableData
8.2 使用NSFileManager管理文件和目錄
8.2.1 訪問文件屬性和內容
8.2.2 創建、刪除、移動、復制
8.2.3 查看目錄包含的內容
8.3 使用NSPathUtilities.h管理路徑
8.4 使用NSProcessInfo獲取進程信息
8.5 使用NSFileHandle處理文件IO
8.6 使用NSURL讀取網絡資源
8.7 使用NSBundle處理項目相關資源
8.8 對象歸檔
8.8.1 使用NSKeyedArchiver歸檔
8.8.2 實現NSCoding協議
8.8.3 使用NSData完成自定義歸檔
8.8.4 使用歸檔實現深復制
8.9 本章小結

第9章 iOS應用開發入門
9.1 從iOS項目開始
9.1.1 iOS項目包含的文件
9.1.2 Interface Builder簡介
9.1.3 添加控件
9.1.4 修改控件屬性
9.1.5 UIView支持的屬性
9.1.6 UILabel支持的屬性
9.2 MVC
9.2.1 程序入口和應用程序代理
9.2.2 理解iOS的MVC
9.2.3 掌握UIViewController控制器
9.3 事件機制
9.3.1 程序獲取控件的兩種方式
9.3.2 事件處理的三種方式
9.4 代碼控制UI界面
9.4.1 不使用界面設計文件開發
UI界面
實例:無界面設計文件開發iOS應用
9.4.2 使用代碼創建UI界面
實例:動態添加、刪除標簽
9.4.3 自定義UI控件
實例:跟隨手指運動的小球
9.5 美化iOS應用
9.5.1 定制iOS應用圖標
9.5.2 定制iOS應用的啟動畫面
9.6 本章小結

第10章 iOS界面編程之基礎控件
10.1 UI控件概述
10.1.1 活動、靜態和被動控件
10.1.2 UIControl基類介紹
10.2 按鈕(UIButton)
實例:豐富多彩的按鈕
10.3 文本框控件(UITextField)
實例:用戶登錄界面
10.3.1 完成輸入后關閉鍵盤
10.3.2 觸碰背景關閉鍵盤
10.4 多行文本控件(UITextView)
10.4.1 UIScrollView支持的屬性
10.4.2 使用委托對象處理
UITextView事件
實例1:通過導航按鈕關閉虛擬鍵盤
實例2:通過自定義鍵盤附件關閉虛
擬鍵盤
10.4.3 自定義選擇內容后的菜單
10.5 開關按鈕(UISwitch)
實例:使用開關控制「手電筒」
10.6 分段控件(UISegmentedControl)
實例:通過分段控件控制背景顏色
10.7 圖像控件(UIImageView)
實例1:圖片瀏覽器
實例2:「幻燈片」播放器
10.8 進度條
10.8.1 UIProgressView
實例:定制進度條
10.8.2 UIActivityIndicatorView
10.9 拖動條(UISlider)
實例:通過拖動滑塊改變圖片透明度
10.10 iOS 9的警告框
(UIAlertController)
10.10.1 彈出式警告框
10.10.2 帶輸入框的警告框
10.11 日期選擇器(UIDatePicker)
10.12 選擇器(UIPickerView)
10.12.1 單列選擇器
10.12.2 多列選擇器
10.12.3 相互依賴的多列選擇器
10.12.4 自定義選擇器視圖
實例:「老虎機」游戲
10.13 iOS 8新增的UIVisualEffectView
10.14 微調器(UIStepper)
10.15 網頁控件(UIWebView)
實例:迷你瀏覽器
10.16 工具條(UIToolBar)
實例:自定義工具條控件
10.17 本章小結

第11章 高級控件與特殊視圖控制器
11.1 iOS 9新增的UIStackView
實例:嵌套UIStackView實現
復雜界面
11.2 表格(UITableView)與表格控制器
(UITableViewController)
11.2.1 簡單表格
11.2.2 處理單元格的選中
實例:編輯選中行
11.2.3 定制表格行
實例1:繼承UITableViewCell
定制表格行
實例2:使用動態單元格原型定
制表格行
11.2.4 編輯表格
11.2.5 多分區表格以及分區索引
11.2.6 直接使用
UITableViewController
11.2.7 靜態單元格
11.2.8 使用UIRefreshController
刷新表格
11.3 搜索條(UISearchBar)
11.3.1 使用搜索條
11.3.2 使用UISearchController
11.4 導航條(UINavigationBar)與導航
控制器(UINavigationController)
11.4.1 使用導航條
11.4.2 使用UINavigationController
實例:查看、編輯圖書信息
11.4.3 使用segue導航
11.5 segue詳解
11.5.1 使用segue控制過渡
11.5.2 Xcode 7新增的
Storyboard Reference
11.6 網格(UICollectionView)與網格
控制器(UICollectionViewController)
11.6.1 UICollectionView的功能
與用法
11.6.2 使用UICollectionViewDelegate- FlowLayout定制布局
實例:單元格大小不同的網格
11.6.3 擴展UICollectionViewLayout
定制布局
實例:環形布局的UICollectionView
11.6.4 多分區網格
實例:帶頁眉、頁腳的多分區網格
11.6.5 直接使用
UICollectionViewController
11.7 標簽條(UITabBar)與標簽頁
控制器(UITabBarController)
11.7.1 使用UITabBar
11.7.2 使用UITabBarController
11.7.3 在Storyboard中使用UITabBarController
11.8 頁控件(UIPageControl)與
頁控制器(UIPageViewController)
11.8.1 UIPageControl與UIScrollView
結合使用
11.8.2 使用UIPageViewController
11.9 iPad應用開發
11.10 本章小結

第12章 管理iOS應用的運行
12.1 iOS設備尺寸和自動旋轉機制
12.1.1 配置應用支持的方向
12.1.2 指定視圖控制器支持的方向
12.2 旋轉時重構用戶界面
12.3 自動布局
12.3.1 自動布局的添加方式
12.3.2 使用自動布局適應不同尺寸
的屏幕
12.3.3 使用Size Class適應屏幕旋轉
12.4 iOS應用的生命周期
12.4.1 應用程序的狀態
12.4.2 應用程序啟動過程
12.4.3 程序入口:main函數
12.4.4 響應中斷
12.4.5 進入后台
12.4.6 返回前台運行
12.4.7 應用程序終止
12.4.8 Main Run Loop
12.5 本章小結

第13章 圖形、圖像與動畫
13.1 使用UIImage和CGImage處理位圖
13.1.1 顯示動畫
13.1.2 UIImage與CGImage
13.2 Quartz 2D繪圖
13.2.1 Quartz 2D繪圖基礎:CGContextRef
13.2.2 繪制幾何圖形
13.2.3 點線模式
13.2.4 繪制文本
13.2.5 設置陰影
13.2.6 使用路徑
實例:繪制任意多角星
13.2.7 繪制曲線
實例:使用曲線繪制多瓣花朵
13.2.8 在內存中繪圖
實例:繪圖板
13.2.9 繪制位圖
實例:擴展UIImage的功能
13.3 圖形變換
13.3.1 使用坐標變換
13.3.2 坐標變換與路徑結合使用
實例:雪花飄飄
13.3.3 使用矩陣變換
13.4 控制疊加模式
13.5 處理填充
13.5.1 漸變填充
13.5.2 模式填充
13.6 動畫
13.6.1 Core Animation動畫基礎
13.6.2 使用CALayer
13.6.3 使用CATransition控制
過渡動畫
13.6.4 使用屬性動畫
13.6.5 控制移動路徑
實例:繞圈游動的小魚
13.7 本章小結

第14章 瘋狂連連看
14.1 游戲簡介
14.2 開發游戲界面
14.2.1 開發界面布局
14.2.2 開發游戲界面控件
14.2.3 處理方塊之間的連接線
14.3 游戲的狀態數據模型
14.3.1 定義數據模型
14.3.2 初始化游戲狀態數據
14.4 加載界面的圖片
14.5 實現游戲視圖控制器
14.6 實現游戲邏輯
14.6.1 GameService分析與初步實現
14.6.2 獲取觸碰點的方塊
14.6.3 判斷兩個方塊是否可以相連
14.6.4 定義獲取通道的工具方法
14.6.5 沒有轉折點的橫向連接
14.6.6 沒有轉折點的縱向連接
14.6.7 有一個轉折點的連接
14.6.8 有兩個轉折點的連接
14.6.9 找出最短距離
14.7 本章小結
 

詳細資料

  • ISBN:9787121287930
  • 規格:728頁 / 普通級 / 1-1
  • 出版地:大陸

資料來源:http://www.books.com.tw/products/CN11349095