本書結合理論知識和實例程式,全面而系統地介紹了Objective-C 編程的相關內容,包括類和繼承、對象的類型和動態綁定、基於引用計數的記憶體管理、垃圾回收、屬性聲明、類NSObject 和運行時系統、Foundation 框架中常用的類、範疇、抽象類與類簇、對象的複製及存儲、塊對象、訊息傳送模式、圖像視圖、異常和錯誤、並行編程、鍵值編碼等。
本書適合iOS 套用和Mac OS X 開發初學者系統入門、有經驗的開發者深入理解語言本質,也適合開發團隊負責人、項目負責人作為綜合性的Objective-C 參考書閱讀。
基本介紹
編輯推薦,內容推薦,作者簡介,譯者簡介,
編輯推薦
日本Objective-C★Objective-C年長銷第3○從記憶體管理到並行編程,完美涵蓋Objective-C○日本資深開發者操刀撰寫,更易理解消化
講解細緻
系統
內容推薦
本書結合理論知識和實例程式,全面而系統地介紹了Objective-C編程的相關內容,包括類和繼承、對象的類型和動態綁定、基於引用計數的記憶體管理、垃圾回收、屬性聲明、類NSObject和運行時系統、Foundation框架中常用的類、範疇、抽象類與類簇、對象的複製及存儲、塊對象、訊息傳送模式、圖像視圖、異常和錯誤、並行編程、鍵值編碼等。
本書適合iOS套用和Mac OS X開發初學者系統入門、有經驗的開發者深入理解語言本質,也適合開發團隊負責人、項目負責人作為綜合性的Objective-C參考書閱讀。
作者簡介
荻原剛志
大阪大學工學博士畢業。京都產業大學計算機理工學院教授,大阪大學客座教授。主要從事軟體開發手法、隱寫術等方面的研究。其本人也是套用軟體開發者,代表作品有ToyViewer、Typist等。
大阪大學工學博士畢業。京都產業大學計算機理工學院教授,大阪大學客座教授。主要從事軟體開發手法、隱寫術等方面的研究。其本人也是套用軟體開發者,代表作品有ToyViewer、Typist等。
譯者簡介
唐璐
碩士畢業於東北大學,2005年赴日,曾就職於東京PtoPA、東軟日本,在日期間曾參與多個iOS和人工智慧的項目。現就職於阿里巴巴無線事業部,從事NLP方面的研究和開發工作。
翟俊傑
畢業於吉林大學和北京郵電大學研究方向為模式識別和智慧型系統。先後任職於東京PtoPA、北京騰訊科技和北京搜狗科技有限公司,主要從事NLP、數據質量、數據挖掘方面.
碩士畢業於東北大學,2005年赴日,曾就職於東京PtoPA、東軟日本,在日期間曾參與多個iOS和人工智慧的項目。現就職於阿里巴巴無線事業部,從事NLP方面的研究和開發工作。
翟俊傑
畢業於吉林大學和北京郵電大學研究方向為模式識別和智慧型系統。先後任職於東京PtoPA、北京騰訊科技和北京搜狗科技有限公司,主要從事NLP、數據質量、數據挖掘方面.
第1章 面向對象的編程
1.1 對象的概念
1.1.1 面向功能的軟體設計的局限性
1.1.2 面向對象的模組化
1.1.3 訊息傳遞
1.1.4 模組的抽象化
1.1.5 對象的屬性
專欄 面向對象的方方面面
1.1.6 類
專欄 Cocoa和Objective-C的歷史
1.2 模組和對象
1.2.1 軟體模組
1.2.2 高獨立性的模組
1.2.3 模組的信息隱蔽
1.2.4 類的定義和接口
1.2.5 訊息傳送的實現
專欄 C語言的新標準
第2章 Objective-C程式設計
2.1 對象和訊息
2.1.1 訊息表達式
2.1.2 訊息選擇器
2.1.3 實例變數的生成和初始化
2.2 類的定義
2.2.1 類的接口聲明
專欄 各種各樣的布爾類型
專欄 不指定方法的返回值
2.2.2 類的實現
2.2.3 一個遙控器的例子
2.3 編譯
2.3.1 簡單的編譯方法
2.3.2 多檔案編譯
2.4 程式的書寫風格
2.4.1 混合編程
2.4.2 C語言函式的使用方法
2.4.3 靜態變數的定義
2.4.4 頭檔案的引入
專欄 參考文檔和SDK
專欄 Xcode的安裝
第3章 類和繼承
3.1 繼承的概念
3.1.1 父類和子類
3.1.2 類的層次結構
3.2 利用繼承定義新類
3.2.1 繼承的定義
3.2.2 類定義和頭檔案
3.2.3 繼承和方法調用
3.2.4 調用父類的方法
3.2.5 初始化方法的定義
3.3 使用繼承的程式示例
3.3.1 追加新方法的例子
3.3.2 方法重寫的例子
3.4 繼承和方法調用
3.4.1 使用self調用方法
3.4.2 使用super調用方法
3.4.3 測試程式
3.5 方法定義時的注意事項
3.5.1 局部方法
3.5.2 指定初始化方法
專欄 Objective-C與開源軟體
第4章 對象的類型和動態綁定
4.1 動態綁定
4.1.1 什麼是動態綁定
4.1.2 多態
4.2 作為類型的類
4.2.1 把類作為一種類型
4.2.2 空指針nil
專欄 關係表達式
4.2.3 靜態類型檢查
4.2.4 靜態類型檢查的總結
4.3 編程中的類型定義
4.3.1 簽名不一致時的情況
專欄 重載
4.3.2 類的前置聲明
4.3.3 強制類型轉換的使用示例
4.4 實例變數的數據封裝
4.4.1 實例變數的訪問許可權
4.4.2 訪問器
4.4.3 實例變數的可見性
4.4.4 在實現部分中定義實例變數
4.5 類對象
4.5.1 什麼是類對象
4.5.2 類對象的類型
4.5.3 類方法的定義
4.5.4 類變數
4.5.5 類對象的初始化
4.5.6 初始化方法的返回值
第5章 基於引用計數的記憶體管理
5.1 動態記憶體管理
5.1.1 記憶體管理的必要性
5.1.2 引用計數、自動引用計數和自動垃圾回收
5.2 手動引用計數記憶體管理
5.2.1 引用計數
5.2.2 測試引用計數的例子
5.2.3 釋放對象的方法
5.2.4 訪問方法和對象所有權
專欄 靜態對象
5.2.5 自動釋放
5.2.6 使用自動釋放池時需要注意的地方
5.2.7 臨時對象的生成
5.2.8 運行迴路和自動釋放池
5.2.9 常量對象
專欄 常量修飾符const
5.3 分數計算器的例子
5.3.1 分數類Faction
5.3.2 保存計算結果的FracRegister類
5.3.3 主函式和執行示例
5.4 ARC概要
5.4.1 什麼是ARC
5.4.2 禁止調用引用計數的相關函式
5.4.3 管理自動釋放池的新語法
5.4.4 變數的初始值
5.4.5 方法族
5.4.6 方法dealloc的定義
5.4.7 使用ARC的程式的編譯
5.4.8 ARC的基本注意事項
5.4.9 使用ARC重構分數計算器
5.5 循環引用和弱引用
5.5.1 循環引用
5.5.2 所有權和對象間的關係
5.5.3 弱引用
5.5.4 自動nil化的弱引用
5.5.5 對象之間引用關係的基本原則
5.6 ARC編程時其他一些注意事項
5.6.1 可以像通常的指針一樣使用的對象
5.6.2 setter方法的注意事項
5.6.3 通過函式的參數返回結果對象
5.6.4 C語言數組保存Objective-C對象
5.6.5 ARC對結構體的一些限制
5.6.6 提示編譯器進行特別處理
第6章 垃圾回收
6.1 垃圾回收的概要
6.1.1 查找不再使用的對象
6.1.2 編程時的注意事項
6.1.3 垃圾收集器
6.1.4 finalize方法的定義
6.1.5 編譯時的設定
6.1.6 引用計數管理方式中方法的處理
6.1.7 使用垃圾回收編程小結
6.2 垃圾回收的詳細功能
6.2.1 分代垃圾回收
6.2.2 弱引用
6.2.3 自動nil化
6.2.4 通過垃圾回收回收動態分配的記憶體
6.2.5 _ _strong修飾符的使用方法
6.2.6 NSGarbageCollector類
6.2.7 實時API
6.3 記憶體管理方式的比較
6.3.1 引用計數和垃圾回收
6.3.2 更改記憶體管理方式
6.3.3 各種記憶體管理方式的比較
第7章 屬性聲明
7.1 屬性是什麼
7.1.1 使用屬性編程
7.1.2 屬性的概念
專欄 內省
7.2 屬性的聲明和功能
7.2.1 顯式聲明屬性
7.2.2 屬性的實現
7.2.3 @synthesize和實例變數
7.2.4 通過@synthesize生成實例變數
7.2.5 給屬性指定選項
7.2.6 賦值時的選項
7.2.7 原子性
7.2.8 屬性聲明和繼承
7.2.9 方法族和屬性的關係
7.3 通過點操作符訪問屬性
7.3.1 點操作符的使用方法
7.3.2 複雜的點操作符的使用方法
7.3.3 何時使用點操作符
第8章 類NSObject和運行時系統
8.1 類NSObject
8.1.1 根類的作用
8.1.2 類和實例
8.1.3 實例對象的生成和釋放
8.1.4 初始化
8.1.5 對象的比較
8.1.6 對象的內容描述
8.2 訊息傳送機制
8.2.1 選擇器和SEL類型
8.2.2 訊息搜尋
8.2.3 以函式的形式來調用方法
專欄 函式指針
8.2.4 對self進行賦值
8.2.5 傳送訊息的速度
8.2.6 類對象和根類
8.2.7 Target-action paradigm
8.2.8 Xcode中的動作方法和Outlet的寫法
8.3 Objective-C和Cocoa環境
8.3.1 cocoa環境和Mac OS X
8.3.2 Cocoa Touch和iOS
8.3.3 框架
8.3.4 框架的構成和頭檔案
8.4 全新的運行時系統
8.4.1 對64位的對應和現代運行時系統
8.4.2 數據模型
8.4.3 64位模型和整數類型
8.4.4 Core Graphics的浮點數類型
8.4.5 健壯實例變數
專欄 條件編譯
第9章 Foundation框架中常用的類
9.1 對象的可變性
……
第10章 範疇
第11章 抽象類和類簇
第12章 協定
第13章 對象的複製及存儲
第14章 塊對象
第15章 訊息傳送模式
第16章 套用的構造
第17章 實例:簡單圖像視圖
第18章 異常和錯誤
第19章 並行編程
第20章 鍵值編碼
1.1 對象的概念
1.1.1 面向功能的軟體設計的局限性
1.1.2 面向對象的模組化
1.1.3 訊息傳遞
1.1.4 模組的抽象化
1.1.5 對象的屬性
專欄 面向對象的方方面面
1.1.6 類
專欄 Cocoa和Objective-C的歷史
1.2 模組和對象
1.2.1 軟體模組
1.2.2 高獨立性的模組
1.2.3 模組的信息隱蔽
1.2.4 類的定義和接口
1.2.5 訊息傳送的實現
專欄 C語言的新標準
第2章 Objective-C程式設計
2.1 對象和訊息
2.1.1 訊息表達式
2.1.2 訊息選擇器
2.1.3 實例變數的生成和初始化
2.2 類的定義
2.2.1 類的接口聲明
專欄 各種各樣的布爾類型
專欄 不指定方法的返回值
2.2.2 類的實現
2.2.3 一個遙控器的例子
2.3 編譯
2.3.1 簡單的編譯方法
2.3.2 多檔案編譯
2.4 程式的書寫風格
2.4.1 混合編程
2.4.2 C語言函式的使用方法
2.4.3 靜態變數的定義
2.4.4 頭檔案的引入
專欄 參考文檔和SDK
專欄 Xcode的安裝
第3章 類和繼承
3.1 繼承的概念
3.1.1 父類和子類
3.1.2 類的層次結構
3.2 利用繼承定義新類
3.2.1 繼承的定義
3.2.2 類定義和頭檔案
3.2.3 繼承和方法調用
3.2.4 調用父類的方法
3.2.5 初始化方法的定義
3.3 使用繼承的程式示例
3.3.1 追加新方法的例子
3.3.2 方法重寫的例子
3.4 繼承和方法調用
3.4.1 使用self調用方法
3.4.2 使用super調用方法
3.4.3 測試程式
3.5 方法定義時的注意事項
3.5.1 局部方法
3.5.2 指定初始化方法
專欄 Objective-C與開源軟體
第4章 對象的類型和動態綁定
4.1 動態綁定
4.1.1 什麼是動態綁定
4.1.2 多態
4.2 作為類型的類
4.2.1 把類作為一種類型
4.2.2 空指針nil
專欄 關係表達式
4.2.3 靜態類型檢查
4.2.4 靜態類型檢查的總結
4.3 編程中的類型定義
4.3.1 簽名不一致時的情況
專欄 重載
4.3.2 類的前置聲明
4.3.3 強制類型轉換的使用示例
4.4 實例變數的數據封裝
4.4.1 實例變數的訪問許可權
4.4.2 訪問器
4.4.3 實例變數的可見性
4.4.4 在實現部分中定義實例變數
4.5 類對象
4.5.1 什麼是類對象
4.5.2 類對象的類型
4.5.3 類方法的定義
4.5.4 類變數
4.5.5 類對象的初始化
4.5.6 初始化方法的返回值
第5章 基於引用計數的記憶體管理
5.1 動態記憶體管理
5.1.1 記憶體管理的必要性
5.1.2 引用計數、自動引用計數和自動垃圾回收
5.2 手動引用計數記憶體管理
5.2.1 引用計數
5.2.2 測試引用計數的例子
5.2.3 釋放對象的方法
5.2.4 訪問方法和對象所有權
專欄 靜態對象
5.2.5 自動釋放
5.2.6 使用自動釋放池時需要注意的地方
5.2.7 臨時對象的生成
5.2.8 運行迴路和自動釋放池
5.2.9 常量對象
專欄 常量修飾符const
5.3 分數計算器的例子
5.3.1 分數類Faction
5.3.2 保存計算結果的FracRegister類
5.3.3 主函式和執行示例
5.4 ARC概要
5.4.1 什麼是ARC
5.4.2 禁止調用引用計數的相關函式
5.4.3 管理自動釋放池的新語法
5.4.4 變數的初始值
5.4.5 方法族
5.4.6 方法dealloc的定義
5.4.7 使用ARC的程式的編譯
5.4.8 ARC的基本注意事項
5.4.9 使用ARC重構分數計算器
5.5 循環引用和弱引用
5.5.1 循環引用
5.5.2 所有權和對象間的關係
5.5.3 弱引用
5.5.4 自動nil化的弱引用
5.5.5 對象之間引用關係的基本原則
5.6 ARC編程時其他一些注意事項
5.6.1 可以像通常的指針一樣使用的對象
5.6.2 setter方法的注意事項
5.6.3 通過函式的參數返回結果對象
5.6.4 C語言數組保存Objective-C對象
5.6.5 ARC對結構體的一些限制
5.6.6 提示編譯器進行特別處理
第6章 垃圾回收
6.1 垃圾回收的概要
6.1.1 查找不再使用的對象
6.1.2 編程時的注意事項
6.1.3 垃圾收集器
6.1.4 finalize方法的定義
6.1.5 編譯時的設定
6.1.6 引用計數管理方式中方法的處理
6.1.7 使用垃圾回收編程小結
6.2 垃圾回收的詳細功能
6.2.1 分代垃圾回收
6.2.2 弱引用
6.2.3 自動nil化
6.2.4 通過垃圾回收回收動態分配的記憶體
6.2.5 _ _strong修飾符的使用方法
6.2.6 NSGarbageCollector類
6.2.7 實時API
6.3 記憶體管理方式的比較
6.3.1 引用計數和垃圾回收
6.3.2 更改記憶體管理方式
6.3.3 各種記憶體管理方式的比較
第7章 屬性聲明
7.1 屬性是什麼
7.1.1 使用屬性編程
7.1.2 屬性的概念
專欄 內省
7.2 屬性的聲明和功能
7.2.1 顯式聲明屬性
7.2.2 屬性的實現
7.2.3 @synthesize和實例變數
7.2.4 通過@synthesize生成實例變數
7.2.5 給屬性指定選項
7.2.6 賦值時的選項
7.2.7 原子性
7.2.8 屬性聲明和繼承
7.2.9 方法族和屬性的關係
7.3 通過點操作符訪問屬性
7.3.1 點操作符的使用方法
7.3.2 複雜的點操作符的使用方法
7.3.3 何時使用點操作符
第8章 類NSObject和運行時系統
8.1 類NSObject
8.1.1 根類的作用
8.1.2 類和實例
8.1.3 實例對象的生成和釋放
8.1.4 初始化
8.1.5 對象的比較
8.1.6 對象的內容描述
8.2 訊息傳送機制
8.2.1 選擇器和SEL類型
8.2.2 訊息搜尋
8.2.3 以函式的形式來調用方法
專欄 函式指針
8.2.4 對self進行賦值
8.2.5 傳送訊息的速度
8.2.6 類對象和根類
8.2.7 Target-action paradigm
8.2.8 Xcode中的動作方法和Outlet的寫法
8.3 Objective-C和Cocoa環境
8.3.1 cocoa環境和Mac OS X
8.3.2 Cocoa Touch和iOS
8.3.3 框架
8.3.4 框架的構成和頭檔案
8.4 全新的運行時系統
8.4.1 對64位的對應和現代運行時系統
8.4.2 數據模型
8.4.3 64位模型和整數類型
8.4.4 Core Graphics的浮點數類型
8.4.5 健壯實例變數
專欄 條件編譯
第9章 Foundation框架中常用的類
9.1 對象的可變性
……
第10章 範疇
第11章 抽象類和類簇
第12章 協定
第13章 對象的複製及存儲
第14章 塊對象
第15章 訊息傳送模式
第16章 套用的構造
第17章 實例:簡單圖像視圖
第18章 異常和錯誤
第19章 並行編程
第20章 鍵值編碼