-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Effective Objective-C 2.0:編寫高質量iOS與OS X代碼的52個有效方法

( 簡體 字)
作者:(英)Matt Galloway 著類別:1. -> 程式設計 -> 手機程式 -> iPhone
譯者:
出版社:機械工業出版社Effective Objective-C 2.0:編寫高質量iOS與OS X代碼的52個有效方法 3dWoo書號: 37707
詢問書籍請說出此書號!

缺書
NT售價: 345

出版日:2/1/2014
頁數:208
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111451297
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

為Objective-C這門語言蕪雜、笨拙、別扭,但筆者卻看到其雅致、靈活、美觀的一面。然而,為了領略這些優點,大家不僅要掌握基礎知識,還要理解語言中的特性、陷阱及繁難之處。本書正是要講述這些內容。

關于本書

本書假定讀者已經熟悉了Objective-C的語法,所以不再贅述。筆者要講的是怎樣完全發揮這門語言的優勢,以編寫出良好的代碼。由于其源自Smalltalk,所以Objective-C是一門相當動態的語言。在其他語言中,許多工作都由編譯器來完成;而在Objective-C中,則要于“運行期”(runtime)執行。于是,在測試環境下能正常運行的函數到了工作環境中,也許就會因為處理了無效數據而不能正確執行。避免此類問題的最佳方案當然是一開始就把代碼寫好。

嚴格地說,許多話題與Objective-C的核心部分并無關聯。本書要談到系統庫中的技術,例如libdispatch庫的“大中樞派發”(Grand Central Dispatch)等。因為當前所說的Objective-C開發就是指開發Mac OS X或iOS應用程序,所以,書中也要提及Foundation框架中的許多類,而不僅僅是其基類NSObject。不論開發Mac OS X程序還是iOS程序,都無疑會用到系統框架,前者所用的各框架統稱為Cocoa,后者則叫Cocoa Touch。

隨著iOS的興起,許多開發者都涌入Objective-C開發陣營。有的程序員初學編程,有的具備Java或C++基礎,還有的則是網頁開發者出身。為了能高效運用Objective-C,無論是哪種情況,你都必須花時間研究這門語言,從而寫出執行迅速、便于維護、不易出錯的代碼來。

盡管這本書只用6個月就寫好了,但是其醞釀過程卻長達數年。筆者某天心血來潮,買了個iPod Touch,等到第一版SDK發布之后,就決定開發個程序玩玩。我做的第一個“應用程序”叫“Subnet Calc”,其下載量比預想中要多。于是我確信,以后要和這個美妙的語言結緣了。從此就一直研究Objective-C,并定期在自己的網站www.galloway.me.uk上發表博文。我對該語言的內部工作原理,諸如“塊”(block)、“自動引用計數”(Auto Reference Count,ARC)等特別感興趣。于是,在有機會寫作一本講Objective-C的書時,自然就當仁不讓了。

為使本書物盡其用,筆者建議大家跳讀,直接翻到最感興趣或與當前工作有關的章節來看。可以分開閱讀每條技巧,也可以按其中所引用的條目跳至其他話題,互相參照。相關技巧歸并成章,讀者可根據各章標題快速找到談及某個語言特性的數條技巧。

目標讀者

本書面向那些有志于深入研究Objective-C的開發者,幫助其編寫便于維護、執行迅速且不易出錯的代碼。如果你目前還不是Objective-C程序員,但是會用Java或C++這樣面向對象的語言,那么仍可閱讀此書。在這種情況下,應先了解Objective-C的語法。

本書主要內容

本書不打算講Objective-C語言的基礎知識,在許多教材和參考資料中都能找到那些內容。本書要講的是如何高效運用這門語言。書中內容分為若干條目,每條都是一小塊易于理解的文字。這些條目按其所談話題組織為如下各章。

第1章:熟悉Objective-C

通論該語言的核心概念。

第2章:對象、消息、運行期

對象之間能夠關聯與交互,這是面向對象語言的重要特征。本章講述這些特征,并深入研究代碼在運行期的行為。

第3章:接口與API設計

很少有那種寫完就不再復用的代碼。即使代碼不向更多人公開,也依然有可能用在自己的多個項目中。本章講解如何編寫與Objective-C搭配得宜的類。

第4章:協議與分類

協議與分類是兩個需要掌握的重要語言特性。若運用得當,則可令代碼易讀、易維護且少出錯。本章將幫助讀者精通這兩個概念。

第5章:內存管理

Objective-C語言以引用計數來管理內存,這令許多初學者糾結,要是用過以“垃圾收集器”(garbage collector)來管理內存的語言,那么更會如此。“自動引用計數”機制緩解了此問題,不過使用時有很多重要的注意事項,以確保對象模型正確,不致內存泄漏。本章提醒讀者注意內存管理中易犯的錯誤。

第6章:塊與大中樞派發

蘋果公司引入了“塊”這一概念,其語法類似于C語言擴展中的“閉包”(closure)。在Objective-C語言中,我們通常用塊來實現一些原來需要很多樣板代碼才能完成的事情,塊還能實現“代碼分離”(code separation)。“大中樞派發”(Grand Central Dispatch,GCD)提供了一套用于多線程環境的簡單接口。“塊”可視為GCD的任務,根據系統資源狀況,這些任務也許能并發執行。本章將教會讀者如何充分運用這兩項核心技術。

第7章:系統框架

大家通常會用Objective-C來開發Mac OS X或iOS程序。在這兩種情況下都有一套完整的系統框架可供使用,前者名為Cocoa,后者名為Cocoa Touch。本章將總覽這些框架,并深入研究其中某些類。

致  謝

在問到是否愿意寫一本Objective-C的書時,我立刻興奮起來。讀過了Effective系列其他書后,我意識到要想寫好這本Objective-C書籍可真是個挑戰。然而在眾人協助之下,這本書終于和大家見面了。

書中好些靈感都源自許多專述Objective-C的精彩博文。筆者要感謝博文作者Mike Ash、Matt Gallagher及“bbum”等人。多年來,這些博客幫助我更深地理解了Objective-C語言。在編撰本書時,NSHipster及Mattt Thompson所寫的優秀文章也啟迪了我的思路。還要感謝蘋果公司提供了極為有用的開發文檔。

在供職于MX Telecom期間,得良師益友之助,我學到了許多知識,若沒有這段經歷,恐怕就無法完成此書了。感謝Matthew Hodgson,令我有機會以一套成熟的C++代碼庫為基礎,開發出公司首個iOS應用程序,在該項目中學到的本領為我參與后續項目打下了基礎。

感謝歷年來保持聯系的各位同仁。大家時而切磋技藝,時而把酒言歡,這對我寫作本書來說都是種幫助。

與培生集團旗下團隊的合作相當愉快。Trina MacDonald、Olivia Basegio、Scott Meyers及Chris Zahn都在需要時給我以幫助與鼓勵。諸位為我提供了專心寫書的工具,并回答了必要的問題。

筆者同技術編輯合作得也非常融洽,你們給了我莫大的幫助。仰賴嚴格的審校,方能使本書內容臻于完美。諸位在檢查書稿時認真細致的態度,也令人稱贊。

最后我要說,此書能問世,愛妻Helen的理解與支持必不可少。準備動筆那天,我們的第一個孩子降生了,真正開始寫作是在幾天之后。Helen與Rosie伴我順利寫完這本書,你們倆真棒!
內容簡介:

bjective-C 2.0編寫優秀的iOS及OS X代碼!
本書介紹如何利用Objective-C語言強大的表現力,寫出能夠在生產環境中出色運行的iOS及OS X代碼。Scott Meyers在其暢銷書《Effective C++》中,首創了一套以應用場景來精準講解編程技巧的行文風格,而本書作者Matt Galloway則采用此方式匯集了52條Objective-C編程心得,其中含有各種技巧與快速解決方案,以及在別處難以找到的真實工作環境里的范例代碼。
作者通過這些實用范例,向大家揭示了Objective-C中鮮為人知的各種奇怪現象與易錯之處,同時還講解了很多能夠改善代碼行為并提高程序性能的復雜特性。讀者將在書中學到如何從多個方案里選出一種最高效的辦法來完成關鍵編程任務,還能掌握怎樣寫出易于理解、易于維護、易于擴展的代碼。除了語言的核心部分之外,書中還介紹了如何使用Foundation框架中的類,以及如何將“大中樞派發”等當前流行的系統庫集成到自己的項目中。
本書內容包括:
優化Objective-C對象之間的互動與關系。
掌握接口與API的設計原則,寫出令開發者用起來得心應手的類。
善用協議與分類,編寫便于維護且不易出現bug的代碼。
在自動引用計數(ARC)環境下避免內存泄漏。
用“塊”與“大中樞派發”編寫呈模塊化且功能強大的代碼。
理解Objective-C中的協議與其他編程語言中的多重繼承有何區別,并掌握協議的用法。
通過數組、字典、set等collection對象來提高代碼性能。
揭示Cocoa與Cocoa Touch框架的強大之處。
目錄:

譯者序

前言

致謝

第1章 熟悉Objective-C 1

第1條:了解Objective-C語言的起源 1

第2條:在類的頭文件中盡量少引入其他頭文件 4

第3條:多用字面量語法,少用與之等價的方法 7

第4條:多用類型常量,少用#define預處理指令 11

第5條:用枚舉表示狀態、選項、狀態碼 14

第2章 對象、消息、運行期 21

第6條:理解“屬性”這一概念 21

第7條:在對象內部盡量直接訪問實例變量 28

第8條:理解“對象等同性”這一概念 30

第9條:以“類族模式”隱藏實現細節 35

第10條:在既有類中使用關聯對象存放自定義數據 39

第11條:理解objc_msgSend的作用 42

第12條:理解消息轉發機制 46

第13條:用“方法調配技術”調試“黑盒方法” 52

第14條:理解“類對象”的用意 56

第3章 接口與API設計 60

第15條:用前綴避免命名空間沖突 60

第16條:提供“全能初始化方法” 64

第17條:實現description方法 69

第18條:盡量使用不可變對象 73

第19條:使用清晰而協調的命名方式 78

第20條:為私有方法名加前綴 83

第21條:理解Objective-C錯誤模型 85

第22條:理解NSCopying協議 89

第4章 協議與分類 94

第23條:通過委托與數據源協議進行對象間通信 94

第24條:將類的實現代碼分散到便于管理的數個分類之中 101

第25條:總是為第三方類的分類名稱加前綴 104

第26條:勿在分類中聲明屬性 106

第27條:使用“class-continuation分類”隱藏實現細節 108

第28條:通過協議提供匿名對象 114

第5章 內存管理 117

第29條:理解引用計數 117

第30條:以ARC簡化引用計數 122

第31條:在dealloc方法中只釋放引用并解除監聽 130

第32條:編寫“異常安全代碼”時留意內存管理問題 132

第33條:以弱引用避免保留環 134

第34條:以“自動釋放池塊”降低內存峰值 137

第35條:用“僵尸對象”調試內存管理問題 141

第36條:不要使用retainCount 146

第6章 塊與大中樞派發 149

第37條:理解“塊”這一概念 149

第38條:為常用的塊類型創建typedef 154

第39條:用handler塊降低代碼分散程度 156

第40條:用塊引用其所屬對象時不要出現保留環 162

第41條:多用派發隊列,少用同步鎖 165

第42條:多用GCD,少用performSelector系列方法 169

第43條:掌握GCD及操作隊列的使用時機 173

第44條:通過Dispatch Group機制,根據系統資源狀況來執行任務 175

第45條:使用dispatch_once來執行只需運行一次的線程安全代碼 179

第46條:不要使用dispatch_get_current_queue 180

第7章 系統框架 185

第47條:熟悉系統框架 185

第48條:多用塊枚舉,少用for循環 187

第49條:對自定義其內存管理語義的collection使用無縫橋接 193

第50條:構建緩存時選用NSCache而非NSDictionary 197

第51條:精簡initialize與load的實現代碼 200

第52條:別忘了NSTimer會保留其目標對象 205
序: