解讀Objective-C和Cocoa特性.全麵涵蓋新技術和新增工具.iPhone、iPad、Mac開發必備.Objective-C是一門麵嚮對象、通用、高級、強大的編程語言。它有著優雅的編程環境,並發揚瞭C語言的優秀特性,是蘋果的iOS和OS X操作係統的主要編程語言。全麵係統地講述瞭Objective-C的基礎知識和麵嚮對象編程的重要概念,結閤實例介紹瞭Cocoa工具包的優秀特性及框架,以及繼承、復閤、對象初始化、類彆、協議、內存管理和源文件組織等重要編程技術,教你如何針對iOS或OS X用戶界麵編寫齣優秀的應用程序。另外,本書第2版新增內容有:
1. Objecitve-C新特性:代碼塊、ARC、類擴展;
2. 新增工具Clang靜態分析器GCD;
3. 如何使用UIKit框架開發精緻的iOS應用程序;
4. 如何使用新版本的Xcode。無論你是初次接觸Objective-C和Cocoa,還是已有豐富的C語言、C++或者Java編程經驗,本書都能讓你輕鬆過渡並熟練掌握Objective-C!
第1章 啓程
1.1 預備知識
1.2 曆史
1.3 內容簡介
1.4 準備工作
1.5 小結
第2章 對C的擴展
2.1 最簡單的Objective-C程序
2.2 解構Hello Objective-C程序
2.2.1 #import語句
2.2.2 框架
2.2.3 NSLog和@“字符串”
2.3 布爾類型
2.4 小結
第3章 麵嚮對象編程的基礎知識
3.1 間接
3.1.1 變量與間接
3.1.2 使用文件名的間接
3.2 在麵嚮對象編程中使用間接
3.2.1 過程式編程
3.2.2 實現麵嚮對象編程
3.3 有關術語
3.4 Objective-C語言中的OOP
3.4.1 @interface部分
3.4.2 @implementation部分
3.4.3 實例化對象
3.4.4 擴展Shapes-Object程序
3.5 小結
第4章 繼承
4.1 為何使用繼承
4.2 繼承的語法格式
4.3 繼承的工作機製
4.3.1 方法調度
4.3.2 實例變量
4.4 重寫方法
4.5 小結
第5章 復閤
5.1 什麼是復閤
5.2 自定義NSLog
5.3 存取方法
5.3.1 設置engine屬性的存取方法
5.3.2 設置tires屬性的存取方法
5.3.3 Car類代碼的其他變化
5.4 擴展CarParts程序
5.5 復閤還是繼承
5.6 小結
第6章 源文件組織
6.1 拆分接口和實現
6.2 拆分Car程序
6.3 使用跨文件依賴關係
6.3.1 重新編譯須知
6.3.2 讓汽車跑一會兒
6.3.3 導入和繼承
6.4 小結
第7章 深入瞭解Xcode
7.1 窗口布局一覽
7.2 改變公司名稱
7.3 使用編輯器的技巧
7.4 在Xcode的幫助下編寫代碼
7.4.1 首行縮進(美觀排版)
7.4.2 代碼自動完成
7.4.3 括號配對
7.4.4 批量編輯
7.4.5 代碼導航
7.4.6 集中精力
7.4.7 使用導航條
7.4.8 獲取信息
7.5 調試
7.5.1 暴力測試
7.5.2 Xcode的調試器
7.5.3 精巧的調試符號
7.5.4 開始調試
7.5.5 檢查程序
7.6 備忘錶
7.7 小結
第8章 Foundation Kit介紹
8.1 穩固的Foundation
8.2 使用項目樣本代碼
8.3 一些有用的數據類型
8.3.1 範圍
8.3.2 幾何數據類型
8.4 字符串
8.4.1 創建字符串
8.4.2 類方法
8.4.3 關於大小
8.4.4 字符串比較
8.4.5 不區分大小寫的比較
8.4.6 字符串內是否還包含彆的字符串
8.4.7 可變性
8.5 集閤大傢族
8.5.1 NSArray
8.5.2 可變數組
8.5.3 枚舉
8.5.4 快速枚舉
8.5.5 NSDictionary
8.5.6 請不要亂來
8.6 其他數值
8.6.1 NSNumber
8.6.2 NSValue
8.6.3 NSNull
8.7 示例:查找文件
8.8 小結
第9章 內存管理
9.1 對象生命周期
9.1.1 引用計數
9.1.2 對象所有權
9.1.3 訪問方法中的保留和釋放
9.1.4 自動釋放
9.1.5 所有對象放入池中
9.1.6 自動釋放池的銷毀時間
9.1.7 自動釋放池的工作流程
9.2 Cocoa的內存管理規則
9.2.1 臨時對象
9.2.2 擁有對象
9.2.3 垃圾迴收
9.2.4 自動引用計數
9.3 異常
9.3.1 與異常有關的關鍵字
9.3.2 捕捉不同類型的異常
9.3.3 拋齣異常
9.3.4 異常也需要內存管理
9.3.5 異常和自動釋放池
9.4 小結
第10章 對象初始化
10.1 分配對象
10.1.1 初始化對象
10.1.2 編寫初始化方法
10.1.3 初始化時要做些什麼
10.2 便利初始化函數
10.3 更多部件改進
10.3.1 Tire類的初始化
10.3.2 更新main函數
10.3.3 清理Car類
10.4 Car類的內存清理(垃圾迴收方式和ARC方式)
10.5 指定初始化函數
10.5.1 子類化問題
10.5.2 Tire類的初始化函數改進後的版本
10.5.3 添加AllWeatherRadial類的初始化函數
10.6 初始化函數規則
10.7 小結
第11章 屬性
11.1 使用屬性值
11.1.1 簡化接口代碼
11.1.2 簡化實現代碼
11.1.3 點錶達式的妙用
11.2 屬性擴展
11.2.1 名稱的使用
11.2.2 隻讀屬性
11.2.3 自己動手有時更好
11.2.4 特性不是萬能的
11.3 小結
第12章 類彆
12.1 創建類彆
12.1.1 開始創建類彆
12.1.2 @interface部分
12.1.3 @implementation部分
12.1.4 類彆的缺陷
12.1.5 類彆的優勢
12.1.6 類擴展
12.2 利用類彆分散實現代碼
12.3 通過類彆創建前嚮引用
12.4 非正式協議和委托類彆
12.4.1 ITunesFinder項目
12.4.2 委托和類彆
12.4.3 響應選擇器
12.4.4 選擇器的其他應用
12.5 小結
第13章 協議
13.1 正式協議
13.1.1 聲明協議
13.1.2 采用協議
13.1.3 實現協議
13.2 復製
13.2.1 復製Engine
13.2.2 復製Tire
13.2.3 復製Car
13.2.4 協議和數據類型
13.3 Objective-C 2.0的新特性
13.4 委托方法
13.5 小結
第14章 代碼塊和並發性
14.1 代碼塊
14.1.1 代碼塊和函數指針
14.1.2 Objective-C變量
14.2 並發性
14.2.1 同步
14.2.2 隊列也要內存管理
14.2.3 操作隊列
14.3 小結
第15章 AppKit簡介
15.1 構建項目
15.2 創建委托文件的@interface部分
15.3 Interface Builder
15.4 設計用戶界麵
15.5 創建連接
15.5.1 連接輸齣口(IBOutlet)
15.5.2 連接操作(IBAction)
15.6 應用程序委托的實現
15.7 小結
第16章 UIKit簡介
16.1 視圖控製器
16.2 小結
第17章 文件加載與保存
17.1 屬性列錶
17.1.1 NSDate
17.1.2 NSData
17.1.3 寫入和讀取屬性列錶
17.1.4 修改對象類型
17.2 編碼對象
17.3 小結
第18章 鍵/值編碼
18.1 入門項目
18.2 KVC簡介
18.3 鍵路徑
18.4 整體操作
18.4.1 休息一下
18.4.2 快速運算
18.5 批處理
18.6 nil仍然可用
18.7 處理未定義的鍵
18.8 小結
第19章 使用靜態分析器
19.1 靜態工作
19.1.1 開始分析
19.1.2 協助分析器
19.1.3 瞭解更多
19.2 小結
第20章 NSPredicate
20.1 創建謂詞
20.2 計算謂詞
20.3 數組過濾器
20.4 格式說明符
20.5 運算符
20.5.1 比較和邏輯運算符
20.5.2 數組運算符
20.6 有SELF就足夠瞭
20.7 字符串運算符
20.8 LIKE運算符
20.9 結語
附錄 從其他語言轉嚮Objective-C
索引
不僅可以將一個類的實現代碼分散到多個不同的源文件中,還可以分散到多個不同的框架中。NSString是Foundation框架中的一個類,包含瞭許多麵嚮數據的類,如字符串、數字和集閤。所有的視覺組件(如窗口、顔色和繪圖等)都包含在AppKit和uIKit中。雖然NSString類是在Foundation框架中聲明的,但是AppKit中有一個Nsstring的類彆,稱為NSStringDrawing,該類彆允許你嚮字符串發送繪圖消息。在繪製一個字符串時,該方法會將字符串的文本渲染到屏幕上。由於這是一種圖形功能,所以它是AppKit框架中的方法。不過Nsstring又是Foundation框架的對象。cocoa的設計人員通過類彆使數據功能放在Foundation框架中,而繪圖功能放在AppKit框架中。作為編程人員,我們直接使用NSStrin9類即可,通常不必關心某個方法來自何處。
12.3通過類彆創建前嚮引用
前麵提到過,Cocoa沒有任何真正的私有方法。如果你知道對象支持的某個方法的名稱,即使該對象所在的類的接口中沒有聲明該方法,你也可以調用它。
不過,編譯器會盡力提供幫助。如果編譯器發現你調用對象的某個方法,但是卻沒有找到該方法的聲明或定義,那麼它將發齣這樣的錯誤提示:warning:'CategoryThin9·may not respond to—setThing4:'。通常情況下,這種錯誤提示是有益的,因為它將有助於你捕捉許多輸入錯誤。
不過,如果你的某些方法的實現使用瞭在類的@interface部分未列齣的方法,編譯器的這種警惕性會帶來一些問題。對於為什麼不想在類的@interface部分列齣自己的全部方法,有許多充分的理由。這些方法可能是純粹的實現細節,你可能將根據方法的名稱來確定要使用哪個方法。但是不管怎樣,如果你在使用自己的方法之前沒有聲明它們,編譯器就會提齣警告。而修復掉所有的編譯器警告是一種良好的習慣,那麼該如何去做呢?
如果能夠先定義一個方法然後再使用它,編譯器將會找到你的方法定義,因而不會産生警告。但是,如果不方便這樣做,或者你使用的是另一個類中尚未發布的方法,那麼就需要采取其他措施。通過類彆來救急隻要在類彆中聲明一個方法,編譯器就會錶示:“好瞭,該方法已經存在,如果遇到編程人員使用該方法,我不會提齣警告。”實際上,如果你不想實現這個方法的話,放著不管就可以瞭。
常用的策略是將類彆置於實現文件的最前麵。假設car類有一個名為rotateTires的方法。我們可以使用另一個名為moveTireFromPosition:toPosition:的方法來實現rotateTires方法,以交換兩個位置的輪胎。第二個方法是實現細節,而不是將其放在car類的公共接口中。通過在類彆中聲明moVeTireFromPosition:toPosition:方法,rotateTires方法可以使用它,但不會引發編譯器産生警告。
……
從這本書的排版和設計來看,就能感受到作者的用心。它不是那種密密麻麻的文字堆積,而是使用瞭閤理的留白、清晰的標題和圖示,使得閱讀過程更加輕鬆愉快。我喜歡書中的代碼塊,都有著清晰的縮進和語法高亮,這使得代碼的可讀性大大提高。很多時候,我會在閱讀代碼示例的時候,嘗試去修改一些參數,看看會發生什麼,通過這種“動手實踐”的方式,我能更深刻地理解代碼的運行邏輯。書中對於一些設計模式的介紹,也讓我受益匪淺。雖然不是專門講設計模式的書,但作者巧妙地將一些常見的設計模式融入到講解Objective-C特性的過程中,例如單例模式、觀察者模式等,讓我能夠理解這些模式在實際開發中的應用。這本教材不僅僅是教會我Objective-C的語法,更是培養瞭我對軟件設計和編程思想的初步認知。我甚至會在遇到編程難題的時候,嘗試迴過頭來翻看書中的相關章節,常常能從中找到解決問題的思路。
評分在我看來,這本書最難能可貴的地方在於它能夠激發讀者的學習熱情,並提供持續的學習動力。作者在講解每一個概念時,都會將它與實際的應用場景聯係起來,讓我明白我所學的知識有什麼用處,能用來做什麼。例如,在講解Objective-C的集閤類(NSArray, NSDictionary, NSSet)時,作者不僅講解瞭它們的用法,還結閤瞭實際的列錶展示、數據查找等場景,讓我能夠直觀地感受到這些數據結構在應用程序中的重要性。書中對於多綫程和並發編程的介紹,也相當有指導意義,讓我瞭解如何利用GCD(Grand Central Dispatch)來處理耗時操作,避免UI阻塞,提升應用程序的響應速度。我嘗試著將GCD應用到我的一個需要加載大量數據的界麵上,效果立竿見影。這本書給我最大的感受是,它不僅僅是一本教材,更像是一位經驗豐富的導師,在我學習Objective-C的道路上,一步步指引我前行。它讓我對iOS開發的興趣更加濃厚,也讓我對未來繼續深入學習Objective-C和Swift充滿瞭信心。
評分不得不說,這本書的內容深度是遠超我的預期的。我原本以為一本“基礎教程”大概也就是講些皮毛,但這本書的內容廣度和深度都給我帶來瞭驚喜。它不僅僅局限於Objective-C的語法本身,而是將Objective-C置於 Cocoa 和 Cocoa Touch 的生態係統中進行講解。這讓我明白瞭Objective-C是如何與iOS和macOS的開發環境緊密結閤的。書中對於CocoaPods的使用和集成,以及如何利用CocoaPods來管理第三方庫,都進行瞭詳細的指導,這對於我後續進行更復雜的項目開發至關重要。我還特彆關注瞭書中關於Blocks(塊)的章節,這個特性在Objective-C中非常強大,可以用來實現異步操作、迴調函數等,理解Blocks的語法和應用場景,讓我對Objective-C的函數式編程能力有瞭更清晰的認識。書中的一些高級話題,比如Runtime(運行時)機製的初步介紹,也讓我對Objective-C的動態特性有瞭更深入的瞭解。雖然Runtime的部分我還沒有完全消化,但它為我打開瞭一扇新的大門,讓我知道在Objective-C的世界裏,還有更多值得探索和學習的東西。
評分這本書的閱讀體驗,我隻能用“酣暢淋灕”來形容。它並非那種堆砌大量晦澀難懂的概念的學術著作,而是以一種極其平易近人的方式,引導讀者一步步走進Objective-C的世界。我最喜歡的是書中穿插的“實戰技巧”和“常見陷阱”,這些內容往往是開發者在實際工作中會遇到的痛點,提前瞭解並掌握,能夠省去不少試錯的時間。例如,書中關於Category(類彆)的講解,就非常有條理地分析瞭它在擴展現有類功能方麵的強大作用,同時也警示瞭濫用Category可能帶來的命名衝突問題。我嘗試著在自己的小項目中運用Category來添加一些便捷方法,確實讓代碼變得更加簡潔。另外,書中對協議(Protocol)的解釋也相當透徹,它如何在不同對象之間建立契約,實現代碼的解耦和復用,讓我有瞭更深刻的認識。通過學習協議,我能夠更好地設計和組織我的類,使之更加靈活和可維護。書中的案例非常貼近實際開發場景,讀起來不像是在“啃書”,更像是和一位經驗豐富的開發者一起探討問題。有時,我會發現書中的某些觀點和我之前的理解有所不同,但通過作者的解釋,我能理解到其中更深層次的原因。
評分這本Objective-C的教材,我拿到手裏的時候,就被它紮實的理論功底和清晰的邏輯結構所吸引。雖然我之前有過一些編程經驗,但接觸Objective-C還是第一次,這本書從最基礎的概念講起,比如對象、類、消息傳遞,都解釋得非常到位。書中大量的代碼示例,我都是逐字逐句地敲進電腦,然後跟著書中的步驟一步步調試,直到完全理解。有時候,一個小小的語法錯誤或者邏輯上的盲點,都會讓我卡住很久,但當我迴過頭來仔細閱讀書中關於這部分的講解時,總能豁然開朗。特彆印象深刻的是書中對於內存管理的講解,ARC(自動引用計數)的引入確實簡化瞭開發,但理解其背後的原理,對於寫齣更高效、更穩定的代碼至關重要。作者用很形象的比喻來解釋“引用計數”這個概念,讓原本枯燥的技術術語變得生動有趣,我反復看瞭幾遍,纔真正體會到它的精髓。此外,書中還涉及瞭Objective-C的一些核心框架,比如Foundation框架,它提供瞭許多基礎類和功能,讓開發者能夠快速構建應用程序。我對Cocoa Touch的瞭解也更深入瞭,比如各種UI元素的創建和管理,以及事件處理機製。這本書不隻是教你“怎麼做”,更重要的是告訴你“為什麼這麼做”,這種刨根問底的精神,對於我這樣的初學者來說,是極其寶貴的。
評分很好的編程書 幫老公買來學習的 自己看不懂...
評分我說實話哈,感覺這個書不是正版的,上麵好多圖片印刷不清楚,不過字跡不模糊,感覺書上用xib講解比較多
評分好正,老師指定購買,送貨快,又有優惠。期待更多更多優惠
評分雖然內容很好,但是
評分書的質量還行。。。但是送貨超慢。。送瞭11天
評分不過學習這本書需要一定的c語言或其他高級語言基礎,沒有的話很多都很難懂,你還得去查彆的資料纔行
評分剛剛轉到ios開發,就買瞭這本書,內容比較基礎,書也比較薄,淺顯易懂,感覺挺不錯
評分3個小時擼完瞭,版本有點老,有點跟不上時代,但是可以學習個大概
評分書都被撞破瞭,很無奈……
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有