蘋(píng)果開(kāi)發(fā)之Cocoa編程

出版時(shí)間:2012-9-1  出版社:機(jī)械工業(yè)出版社華章公司  作者:Aaron Hillegass,Adam Preble  頁(yè)數(shù):365  譯者:黃敏,郝剛  
Tag標(biāo)簽:無(wú)  

前言

前言如果你正在開(kāi)發(fā)或者希望進(jìn)行Mac應(yīng)用開(kāi)發(fā),那么這本書(shū)就是你所需要的。本書(shū)是否涵蓋了所有Mac應(yīng)用編程的相關(guān)知識(shí)?當(dāng)然不是,不過(guò)本書(shū)涉及了Mac開(kāi)發(fā)接近80%的內(nèi)容。讀者可以在Apple公司的在線(xiàn)文檔中找到剩余的20%,而這20%正是獨(dú)屬于你的。本書(shū)展示了應(yīng)用開(kāi)發(fā)的基礎(chǔ),包含了Objective-C語(yǔ)言和Cocoa的主要設(shè)計(jì)模式。讀者還可以熟悉最常用的兩個(gè)開(kāi)發(fā)工具:Xcode和Instruments。閱讀完本書(shū)之后,讀者就可以理解并使用Apple公司的在線(xiàn)文檔了。本書(shū)包含很多代碼。通過(guò)這些代碼,筆者將向讀者講解Cocoa社區(qū)的一些慣用法。希望通過(guò)實(shí)踐這些示例代碼,讀者不僅能夠成為一名Cocoa開(kāi)發(fā)人員,而且還能夠成為一名優(yōu)秀的Cocoa開(kāi)發(fā)人員。第4版涉及在MacOSX10.6和10.7中引入的一些技術(shù),包括Xcode4、ARC(AutomaticReferenceCounting,自動(dòng)內(nèi)存管理技術(shù))、blocks、view-basedtableviews和Mac應(yīng)用商店。本書(shū)專(zhuān)門(mén)安排一章用于講述iOS的基本開(kāi)發(fā)。本書(shū)適合已經(jīng)具備一些C語(yǔ)言基礎(chǔ)且了解一些面向?qū)ο笾R(shí)的開(kāi)發(fā)人員。假如讀者并不知道C語(yǔ)言或面向?qū)ο蟮母拍?,那么讀者首先應(yīng)該學(xué)習(xí)《Objective-CProgramming:TheBigNerdRanchguide》。讀者并不需要具備Mac編程經(jīng)驗(yàn)。這是一本實(shí)戰(zhàn)類(lèi)的圖書(shū),因此讀者需要安裝MacOSX系統(tǒng)和開(kāi)發(fā)工具。Xcode4.2、Apple的IDE都可免費(fèi)下載、安裝。如果讀者是Mac的付費(fèi)會(huì)員,或者隸屬iOS開(kāi)發(fā)者聯(lián)盟,也可以從Apple公司的開(kāi)發(fā)者網(wǎng)站下載Xcode(http://developer.apple.com/)。開(kāi)發(fā)者注冊(cè)成為上述成員,可將自己的應(yīng)用程序提交到Apple公司的Mac應(yīng)用商店或iOS應(yīng)用商店。筆者將盡可能地讓本書(shū)更加實(shí)用。Aaron HillegassAdam Preble

內(nèi)容概要

  本書(shū)是在Aaron多年教學(xué)經(jīng)驗(yàn)的基礎(chǔ)上進(jìn)行了總結(jié)提煉的精華之作,加之前面3版不斷推敲和完善,已經(jīng)成為學(xué)習(xí)Cocoa編程的入門(mén)級(jí)經(jīng)典書(shū)籍。本書(shū)系統(tǒng)介紹了Objective-C語(yǔ)言、Cocoa主要的設(shè)計(jì)模式、必要的開(kāi)發(fā)工具Xcode和Instruments等,同時(shí)新引入了ARC、blocks、view-based
table
views和Mac應(yīng)用商店,并專(zhuān)門(mén)開(kāi)辟一章用于介紹在iOS上的基礎(chǔ)開(kāi)發(fā)。相比于之前的版本,本書(shū)在Cocoa框架新特性、新技術(shù)的基礎(chǔ)上,更加側(cè)重實(shí)戰(zhàn),也更加結(jié)合應(yīng)用發(fā)展的最新趨勢(shì)。全書(shū)以具體的實(shí)例貫穿,引導(dǎo)讀者通過(guò)實(shí)踐學(xué)習(xí)Cocoa框架的基本思想。在本書(shū)中,讀者不僅能夠看到技術(shù)細(xì)節(jié),更能看到不斷剖析、層層遞進(jìn)的解決問(wèn)題的思路,甚至可以看到如何查找資料、獲取幫助的方法,幫助讀者建立規(guī)范、科學(xué)的設(shè)計(jì)開(kāi)發(fā)習(xí)慣。閱讀本書(shū)不要求讀者擁有任何的Mac編程經(jīng)驗(yàn),只需要了解基本的C語(yǔ)言,以及面向?qū)ο蟮闹R(shí)即可。相信本書(shū)能夠推動(dòng)蘋(píng)果中文社區(qū)的進(jìn)一步發(fā)展、壯大,也希望能夠?qū)bjective-C和Cocoa框架以及蘋(píng)果產(chǎn)品背后一流的技術(shù)實(shí)力從細(xì)微處展現(xiàn)出來(lái),幫助那些致力于創(chuàng)新、變革以及追求完美的人們。

作者簡(jiǎn)介

   Aaron
Hillegass,資深蘋(píng)果應(yīng)用開(kāi)發(fā)工程師、培訓(xùn)講師和技術(shù)作家,在使用Cocoa進(jìn)行開(kāi)發(fā)方面擁有15年工作經(jīng)驗(yàn),具有非常高的知名度和非常大的影響力。曾就職于NeXT和Apple公司,目前在Big
Nerd
Ranch主講Cocoa編程,第一套OpenStep(Cocoa的前身)教程便出自他和本書(shū)另一位作者之手。他還寫(xiě)過(guò)多本關(guān)于Cocoa、Objective-C、iPhone和iOS方面的圖書(shū)。
   Adam
Preble,Mac和iOS軟件程序開(kāi)發(fā)顧問(wèn)、資深蘋(píng)果應(yīng)用開(kāi)發(fā)工程師、培訓(xùn)講師和技術(shù)作家,在使用Cocoa、Objective-C以及C/C++進(jìn)行開(kāi)發(fā)方面擁有多年工作經(jīng)驗(yàn),尤其在應(yīng)用程序用戶(hù)體驗(yàn)方面有獨(dú)到的見(jiàn)解。目前在Big
Nerd Ranch開(kāi)發(fā)Mac和iOS應(yīng)用,也是Cocoa編程的主講教師。

書(shū)籍目錄

譯者序
前 言
致 謝
第1章 什么是Cocoa
1.1 歷史簡(jiǎn)介
1.2 開(kāi)發(fā)工具
1.3 編程語(yǔ)言
1.4 對(duì)象、類(lèi)、方法和消息
1.5 框架
1.6 如何閱讀本書(shū)
1.7 約定
1.8 常見(jiàn)錯(cuò)誤
1.9 如何學(xué)習(xí)
第2章 起步
2.1 Xcode
2.1.1 新建項(xiàng)目
2.1.2 main函數(shù)
2.2 Interface Builder
2.2.1 utility區(qū)
2.2.2 空白窗口
2.2.3 頁(yè)面布局
2.2.4 dock
2.2.5 創(chuàng)建一個(gè)類(lèi)
2.2.6 創(chuàng)建一個(gè)實(shí)例
2.2.7 創(chuàng)建連接
2.3 回顧Objective-C
2.3.1 Objective-C中的類(lèi)型和常量
2.3.2 查看頭文件
2.3.3 編輯實(shí)現(xiàn)文件
2.3.4 編譯和運(yùn)行
2.3.5 awakeFromNib
2.4 文檔
2.5 你做了什么
2.6 應(yīng)用程序運(yùn)行過(guò)程
第3章 Objective-C
3.1 創(chuàng)建和使用實(shí)例
3.2 使用已有的類(lèi)
3.2.1 給nil發(fā)送消息
3.2.2 NSObject、NSArray、NSMutableArray和NSString
3.2.3 組合和繼承
3.3 創(chuàng)建自己的類(lèi)
3.3.1 創(chuàng)建LotteryEntry類(lèi)
3.3.2 更改main.m文件
3.3.3 實(shí)現(xiàn)Description方法
3.3.4 編寫(xiě)初始化器initializer
3.3.5 帶參數(shù)的初始化器
3.4 調(diào)試器
3.5 你做了什么
3.6 靜態(tài)分析器
3.7 補(bǔ)充知識(shí):消息機(jī)制工作原理
3.8 挑戰(zhàn)
第4章 內(nèi)存管理
4.1 手動(dòng)內(nèi)存管理
4.1.1 創(chuàng)建沒(méi)有內(nèi)存泄漏的彩票程序
4.1.2 dealloc函數(shù)
4.1.3 自動(dòng)釋放對(duì)象
4.1.4 retain計(jì)數(shù)規(guī)則
4.2 Accessor方法
4.3 使用ARC
4.3.1 強(qiáng)引用
4.3.2 弱引用
4.3.3 ARC補(bǔ)充知識(shí)
第5章 Target/Action
5.1 一些NSControl子類(lèi)的常見(jiàn)用法
5.1.1 NSButton
5.1.2 NSSlider
5.1.3 NSTextField
5.2 開(kāi)始SpeakLine示例
5.3 XIB文件中的布局設(shè)置
5.4 實(shí)現(xiàn)SpeakLineAppDelegate類(lèi)
5.5 補(bǔ)充:通過(guò)代碼設(shè)置
5.6 挑戰(zhàn)
5.7 調(diào)試建議
第6章 Helper對(duì)象
6.1 委托
6.2 NSTableView及其dataSource
6.3 用戶(hù)界面布局
6.4 建立連接
6.5 編輯SpeakLineAppDelegate.m文件
6.5.1 在實(shí)現(xiàn)委托時(shí)的常見(jiàn)錯(cuò)誤
6.5.2 對(duì)象委托
6.6 補(bǔ)充知識(shí):委托是怎樣工作的
6.7 挑戰(zhàn)1:創(chuàng)建委托
6.8 挑戰(zhàn)2:創(chuàng)建一個(gè)數(shù)據(jù)源
第7章 鍵-值編碼和鍵-值觀察
7.1 鍵-值編碼
7.2 綁定
7.3 鍵-值觀察KVO
7.4 使對(duì)象的鍵可觀察
7.5 Properties
7.6 補(bǔ)充知識(shí)1:鍵路徑
7.7 補(bǔ)充知識(shí)2:鍵-值觀察
第8章 NSArrayController
8.1 從RaiseMan應(yīng)用開(kāi)始
8.2 鍵-值編碼和nil
8.3 添加排序功能
8.4 補(bǔ)充知識(shí):不使用NSArrayController進(jìn)行排序
8.5 挑戰(zhàn)1
8.6 挑戰(zhàn)2
第9章 NSUndoManager
9.1 NSInvocation
9.2 NSUndoManager的工作機(jī)制
9.3 為RaiseMan添加撤銷(xiāo)功能
9.4 鍵-值觀察
9.5 撤銷(xiāo)編輯操作
9.6 插入后立即編輯
9.7 補(bǔ)充知識(shí):窗口和undo管理器
第10章 Archiving
10.1 NSCoder和NSCoding
10.1.1 編碼
10.1.2 解碼
10.2 文檔架構(gòu)
10.2.1 Info.plist和NSDocumentController
10.2.2 NSDocument
10.2.3 NSWindowController
10.3 保存和NSKeyedArchiver
10.4 載入和NSKeyedUnarchiver
10.5 為文件類(lèi)型設(shè)置擴(kuò)展名和圖標(biāo)
10.6 補(bǔ)充知識(shí)1:避免死循環(huán)
10.7 補(bǔ)充知識(shí)2:創(chuàng)建Protocol
10.8 補(bǔ)充知識(shí)3:自動(dòng)保存文檔
10.9 補(bǔ)充知識(shí)4:沒(méi)有undo功能的基于文檔的應(yīng)用程序
10.10 統(tǒng)一類(lèi)型標(biāo)識(shí)符
第11章 Core Data基本原理
11.1 NSManagedObjectModel
11.2 Interface
11.2.1 基于視圖的表格視圖
11.2.2 連接和綁定
11.2.3 Core Data 如何工作
11.3 補(bǔ)充知識(shí):基于視圖和基于單元格的表格視圖比較
11.4 挑戰(zhàn)
第12章 NIB文件和NSWindowController
12.1 NSPanel
12.2 向應(yīng)用程序添加面板
12.2.1 設(shè)置菜單項(xiàng)
12.2.2 AppController.m
12.2.3 Preferences.xib
12.2.4 PreferenceController.m
12.3 補(bǔ)充知識(shí):NSBundle
12.4 挑戰(zhàn)
第13章 User Defaults
13.1 NSDictionary和NSMutableDictionary
13.1.1 NSDictionary
13.1.2 NSMutableDictionary
13.2 NSUserDefaults
13.3 設(shè)置Defaults
13.3.1 設(shè)置程序標(biāo)識(shí)符
13.3.2 為defaults的名字建立鍵
13.3.3 注冊(cè)defaults
13.4 讓用戶(hù)編輯Defaults
13.5 使用Defaults
13.5.1 禁用自動(dòng)創(chuàng)建未命名新文檔
13.5.2 設(shè)置表格視圖的背景色
13.6 補(bǔ)充知識(shí)1:NSUserDefaultsController
13.7 補(bǔ)充知識(shí)2:從命令行讀寫(xiě)Defaults
13.8 挑戰(zhàn)
第14章 使用Notifications
14.1 Notifications 是什么
14.2 Notifications不是什么
14.3 NSNotification
14.4 NSNotificationCenter
14.5 發(fā)布notification
14.6 注冊(cè)成為觀察者
14.7 當(dāng)notification到達(dá)時(shí)怎么處理
14.8 userInfo字典
14.9 補(bǔ)充知識(shí):Delegates和 Notifications
14.10 挑戰(zhàn)
第15章 使用告警窗口
15.1 讓用戶(hù)確認(rèn)刪除
15.2 挑戰(zhàn)
第16章 本地化
16.1 本地化NIB文件
16.2 字符串表
16.2.1 創(chuàng)建字符串表
16.2.2 使用字符串表
16.3 補(bǔ)充知識(shí)1:ibtool
16.4 補(bǔ)充知識(shí)2:格式化字符串中符號(hào)的順序
第17章 自定義視圖
17.1 視圖層次
17.2 繪制視圖
17.2.1 創(chuàng)建視圖子類(lèi)的實(shí)例
17.2.2 Size Inspector
17.2.3 drawRect
17.3 使用NSBezierPath 繪圖
17.4 NSScrollView
17.5 用程序創(chuàng)建視圖
17.6 補(bǔ)充知識(shí)1:?jiǎn)卧?br />17.7 補(bǔ)充知識(shí)2:isFlipped
17.8 挑戰(zhàn)
第18章 圖片和鼠標(biāo)事件
18.1 NSResponder
18.2 NSEvent
18.3 捕獲鼠標(biāo)事件
18.4 使用NSOpenPanel
18.4.1 修改XIB文件
18.4.2 代碼編輯
18.5 在視圖中合成圖片
18.6 視圖的坐標(biāo)系統(tǒng)
18.7 Autoscrolling
18.8 補(bǔ)充知識(shí):NSImage
18.9 挑戰(zhàn)
第19章 鍵盤(pán)事件
19.1 NSResponder
19.2 NSEvent
19.3 使用自定義視圖創(chuàng)建一個(gè)新的工程
19.3.1 界面布局
19.3.2 創(chuàng)建連接
19.3.3 編寫(xiě)代碼
19.4 補(bǔ)充知識(shí):Rollovers
19.5 毛邊藍(lán)框
第20章 繪制帶屬性的文本
20.1 NSFont
20.2 NSAttributedString
20.3 繪制字符串和屬性字符串
20.4 顯示字母
20.5 讓視圖生成PDF數(shù)據(jù)
20.6 補(bǔ)充知識(shí):NSFontManager
20.7 挑戰(zhàn)1
20.8 挑戰(zhàn)2
第21章 粘貼板和Nil-Targeted Actions
21.1 NSPasteboard
21.2 在BigLetterView 中添加剪切、復(fù)制和粘貼功能
21.3 Nil-Targeted Actions
21.4 補(bǔ)充知識(shí)1:哪個(gè)對(duì)象發(fā)送了action消息
21.5 補(bǔ)充知識(shí)2:UTI和剪貼板
21.6 補(bǔ)充知識(shí)3:延遲復(fù)制技術(shù)
21.7 挑戰(zhàn)1
21.8 挑戰(zhàn)2
第22章 Categories
22.1 在NSString 中添加方法
22.2 補(bǔ)充知識(shí):聲明私有方法
第23章 拖放
23.1 設(shè)置BigLetterView 為拖動(dòng)作的源
23.1.1 開(kāi)始拖操作
23.1.2 釋放以后
23.2 設(shè)置BigLetterView為拖操作的目的
23.2.1 registerForDraggedTypes:
23.2.2 添加高亮效果
23.2.3 實(shí)現(xiàn)拖操作目的方法
23.2.4 添加第二個(gè)的BigLetterView 對(duì)象
23.3 補(bǔ)充知識(shí):Operation Mask
第24章 NSTimer
24.1 界面布局
24.2 建立連接
24.3 為T(mén)utorController添加代碼
24.4 補(bǔ)充知識(shí):NSRunLoop
24.5 挑戰(zhàn)
第25章 工作表
25.1 添加sheet窗口
25.1.1 添加outlet和action
25.1.2 界面布局
25.1.3 添加代碼
25.2 補(bǔ)充知識(shí)1:contextInfo
25.3 補(bǔ)充知識(shí)2:模式化窗口
第26章 創(chuàng)建NSFormatters
26.1 簡(jiǎn)單的格式化器類(lèi)
26.1.1 創(chuàng)建ColorFormatter.h
26.1.2 編輯XIB文件
26.1.3 NSColorList
26.1.4 在字符串中搜索子串
26.1.5 實(shí)現(xiàn)基本的格式化器方法
26.2 NSControl類(lèi)的Delegate
26.3 檢查部分字符串
26.4 返回屬性字符串的格式化器
26.5 補(bǔ)充知識(shí):NSValueTransformer
第27章 打印
27.1 處理頁(yè)面設(shè)置
27.2 補(bǔ)充知識(shí):是在屏幕上繪圖嗎
27.3 挑戰(zhàn)
第28章 Web Service
28.1 RanchForecast項(xiàng)目
28.1.1 NSURLConnection
28.1.2 在ScheduleFetcher中添加X(jué)ML解析功能
28.1.3 界面布局
28.1.4 編寫(xiě)控制器代碼
28.2 打開(kāi)URL
28.3 挑戰(zhàn):添加一個(gè)WebView
第29章 Blocks
29.1 塊語(yǔ)法
29.1.1 塊內(nèi)部的內(nèi)存和對(duì)象操作
29.1.2 塊的可用性
29.1.3 RanchForecast: 異步開(kāi)發(fā)
29.1.4 接收異步響應(yīng)
29.2 挑戰(zhàn):實(shí)現(xiàn)一個(gè)Delegate
第30章 iOS開(kāi)發(fā)
30.1 將RanchForecast移植到iOS
30.2 RootViewController
30.3 添加導(dǎo)航控制器
30.4 ScheduleViewController
30.5 UITableViewController
30.6 視圖控制器切換
30.7 挑戰(zhàn)
第31章 視圖切換
31.1 開(kāi)始
31.1.1 創(chuàng)建管理視圖控制器類(lèi)
31.1.2 創(chuàng)建視圖控制器及其XIB文件
31.2 給MyDocument添加視圖切換功能
31.3 調(diào)整窗口尺寸
第32章 Core Data Relationships
32.1 模型編輯
32.2 創(chuàng)建自定義NSManagedObject類(lèi)
32.2.1 Employee
32.2.2 Department
32.3 界面布局
32.4 事件及nextResponder
第33章 Core Animation
33.1 Scattered
33.2 隱式動(dòng)畫(huà)及action
33.3 挑戰(zhàn)1
33.4 挑戰(zhàn)2
第34章 并發(fā)性
34.1 多線(xiàn)程
34.1.1 巨大的分歧
34.1.2 簡(jiǎn)單的Cocoa后臺(tái)線(xiàn)程
34.2 Scattered 升級(jí)版:Instruments 中的Time Profiling
34.3 NSOperationQueue
34.3.1 Scattered的多線(xiàn)程解決方案
34.3.2 線(xiàn)程的同步處理
34.4 補(bǔ)充知識(shí):更快的Scattered 程序
34.5 挑戰(zhàn)
第35章 Cocoa和OpenGL
35.1 一個(gè)簡(jiǎn)單的Cocoa/OpenGL應(yīng)用程序
35.2 界面布局
35.3 代碼編寫(xiě)
第36章 NSTask
36.1 ZIPspector
36.1.1 同步讀取
36.1.2 iPing
36.2 挑戰(zhàn):.tar和.tgz文件
第37章 發(fā)布應(yīng)用
37.1 Build Configurations
37.2 創(chuàng)建Release版本
37.3 應(yīng)用沙箱
37.3.1 權(quán)限
37.3.2 文件訪問(wèn)與權(quán)限的折中
37.4 蘋(píng)果應(yīng)用商店
結(jié)束語(yǔ)

章節(jié)摘錄

版權(quán)頁(yè):   插圖:   相較于復(fù)雜的NSOperation對(duì)象創(chuàng)建方式,這里使用了NSOperationQueue的addOperationWittBlock:,來(lái)創(chuàng)建NSBlockOperation對(duì)象,并將其添加到隊(duì)列中。請(qǐng)注意,這里代碼更改還是比較少的,程序最主要的流程也沒(méi)有進(jìn)行改變。一般情況下并不這樣進(jìn)行多線(xiàn)程的處理,但是可以看到,通過(guò)對(duì)域內(nèi)變量的引用,鎖定機(jī)制幫助開(kāi)發(fā)者避免了很多復(fù)雜代碼。 34.3.2線(xiàn)程的同步處理 在這個(gè)例子中還不需要擔(dān)心race conditions,其原因在于,程序設(shè)計(jì)時(shí)就避免了與后臺(tái)線(xiàn)程進(jìn)行數(shù)據(jù)結(jié)構(gòu)共享。后臺(tái)線(xiàn)程的工作只是進(jìn)行文件夾計(jì)數(shù)、打開(kāi)圖片以及創(chuàng)建thumbnails等。這個(gè)例子中唯一的共享數(shù)據(jù)就是Core Animation layers,但它也只是由mian線(xiàn)程進(jìn)行了修改而已。避免了race conditions,多線(xiàn)程看起來(lái)就太簡(jiǎn)單了。 并不是所有的多線(xiàn)程都可以通過(guò)這種方法來(lái)解決,很多時(shí)候需要保護(hù)代碼塊(或者多個(gè)代碼塊),以確保某個(gè)時(shí)間點(diǎn)上只有一個(gè)線(xiàn)程能運(yùn)行。這通常通過(guò)互斥鎖(互相排斥的鎖定)來(lái)完成。Objective—C提供了一個(gè)簡(jiǎn)單的方法來(lái)部署互斥鎖——@synchronized指令。 @synchronized指令使用了互斥鎖,這與傳值對(duì)象不同。在這個(gè)例子中,我們鎖定images對(duì)象,就是一個(gè)NSMutableArray實(shí)例。由于NSMutableArray對(duì)象并不是thread—safe(就是說(shuō)該對(duì)象并不是用于多線(xiàn)程操作的),因此,在多線(xiàn)程環(huán)境中進(jìn)行操作時(shí)推薦使用互斥鎖。使用@synchronized指令可以保證:當(dāng)所有的@synchronized指令在一個(gè)確定的對(duì)象上操作時(shí),只有一個(gè)線(xiàn)程在某個(gè)時(shí)間點(diǎn)上可以執(zhí)行封裝的代碼塊。因此,如果有兩個(gè)線(xiàn)程同時(shí)都要調(diào)用addlmage:方法,第一個(gè)線(xiàn)程將獲得鎖,可以進(jìn)行圖片對(duì)象的添加;而第二個(gè)線(xiàn)程將被鎖住,直到這個(gè)鎖被釋放。 讀者可能對(duì)為什么NSMutableArray不是thread-safe感到困惑。一個(gè)原因是互斥鎖與它有負(fù)載關(guān)聯(lián),線(xiàn)程的安全性使得NSMutableArrays對(duì)象的性能明顯下降;另一個(gè)原因就是,通常情況下鎖定某個(gè)代碼塊比進(jìn)行一個(gè)單獨(dú)的線(xiàn)程調(diào)用,更有用、也更普遍一些,這樣看起來(lái)好像是將對(duì)象從一個(gè)數(shù)據(jù)結(jié)構(gòu)移動(dòng)到另一個(gè)數(shù)據(jù)結(jié)構(gòu)。 Cocoa提供了一系列的工具用于線(xiàn)程同步,如NSLock和NSCondition。對(duì)于這些工具,可以看看NSOperationQueue中的相關(guān)資料,Grand Central Dispatch在《Advanced MacOS XProgramming》中也進(jìn)行了詳盡的討論。

媒體關(guān)注與評(píng)論

Aaron的這本書(shū)是Mac OS X編程圖書(shū)領(lǐng)域的標(biāo)桿——措辭優(yōu)雅、精雕細(xì)琢,是開(kāi)發(fā)蘋(píng)果應(yīng)用的優(yōu)秀圖書(shū)。—— Scott Stevenson經(jīng)過(guò)幾個(gè)版次的市場(chǎng)檢驗(yàn),本書(shū)已經(jīng)被公認(rèn)為從零開(kāi)始學(xué)習(xí)Cocoa編程的首選。Aaron是少數(shù)(很可能是唯一)全職的專(zhuān)業(yè)Cocoa講師之一,他多年的教學(xué)經(jīng)驗(yàn)都濃縮于本書(shū)中。—— Tim Burks,資深軟件工程師/Nu編程語(yǔ)言創(chuàng)始人如果你是工作在UNIX或Windows平臺(tái)上的程序員,希望為Mac OS X開(kāi)發(fā)一些新應(yīng)用,或者想將應(yīng)用移植到Mac上,那么這本書(shū)是必備的參考書(shū)和培訓(xùn)資料。—— Kevin H. Spencer,Apple認(rèn)證技術(shù)協(xié)調(diào)員

編輯推薦

《華章程序員書(shū)庫(kù):蘋(píng)果開(kāi)發(fā)之Cocoa編程(原書(shū)第4版)》編輯推薦:經(jīng)典暢銷(xiāo)書(shū)全新升級(jí),全面且深入地講解了Cocoa編程的各項(xiàng)知識(shí),被譽(yù)為Mac OS X編程圖書(shū)領(lǐng)域的標(biāo)桿,是從零開(kāi)始系統(tǒng)學(xué)習(xí)Cocoa編程的首選!

名人推薦

Aaron的這本書(shū)是Mac OS X編程圖書(shū)領(lǐng)域的標(biāo)桿——措辭優(yōu)雅、精雕細(xì)琢,是開(kāi)發(fā)蘋(píng)果應(yīng)用的優(yōu)秀圖書(shū)?!猄cott Stevenson,the ocacao網(wǎng)經(jīng)過(guò)幾個(gè)版次的市場(chǎng)檢驗(yàn),本書(shū)已經(jīng)被公認(rèn)為從零開(kāi)始學(xué)習(xí)Cocoa編程的首選。Aaron是少數(shù)(很可能是唯一)全職的專(zhuān)業(yè)Cocoa講師之一,他多年的教學(xué)經(jīng)驗(yàn)都濃縮于本書(shū)中?!猅im Burks,資深軟件工程師/Nu編程語(yǔ)言創(chuàng)始人如果你是工作在UNIX或Windows平臺(tái)上的程序員,希望為Mac OS X開(kāi)發(fā)一些新應(yīng)用,或者想將應(yīng)用移植到Mac上,那么這本書(shū)是必備的參考書(shū)和培訓(xùn)資料?!狵evin H. Spencer,Apple認(rèn)證技術(shù)協(xié)調(diào)員

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    蘋(píng)果開(kāi)發(fā)之Cocoa編程 PDF格式下載


用戶(hù)評(píng)論 (總計(jì)47條)

 
 

  •   經(jīng)典暢銷(xiāo)書(shū)全新升級(jí),全面且深入地講解了Cocoa編程的各項(xiàng)知識(shí),被譽(yù)為Mac OS X編程圖書(shū)領(lǐng)域的標(biāo)桿,是從零開(kāi)始系統(tǒng)學(xué)習(xí)Cocoa編程的首選!
  •   從零開(kāi)始系統(tǒng)學(xué)習(xí)Cocoa編程的首選!
  •   強(qiáng)烈推薦這本書(shū),屬于蘋(píng)果開(kāi)發(fā)必讀,看完后無(wú)論是Mac os還是iOS下的開(kāi)發(fā)都清晰明了,通俗易懂,是Mac開(kāi)發(fā)入門(mén)必備!譯文質(zhì)量也相當(dāng)不錯(cuò)!
  •   這本書(shū)的封面有一股小清新的氣息 和蘋(píng)果的風(fēng)格很像 內(nèi)容也是圖文并茂 相信跟隨著這本書(shū)的學(xué)習(xí) 對(duì)于初步學(xué)習(xí)蘋(píng)果編程的人都會(huì)有很大幫助
  •   非常好的書(shū),iOS開(kāi)發(fā)很有用
  •   終于等到到貨了,內(nèi)容簡(jiǎn)潔,深度到位,蘋(píng)果開(kāi)發(fā)必看的書(shū),沒(méi)有之一!
  •   書(shū)不錯(cuò),但是我想了解更多圖像處理及多媒體開(kāi)發(fā)方面的內(nèi)容
  •   看了第三版覺(jué)得不錯(cuò) 所以才買(mǎi)的唉 現(xiàn)在的xcode版本更新快 國(guó)內(nèi)很多書(shū)(翻譯的)還是3.x 的...美國(guó)那邊出的書(shū)估計(jì)都是要拖半年才能翻譯過(guò)來(lái)
  •   翻譯的還不錯(cuò),但是很希望看到原版啊
  •   適合初學(xué)者進(jìn)一步學(xué)習(xí)
  •   速度很快,書(shū)挺不錯(cuò),目前還沒(méi)有開(kāi)始看,所以不知道內(nèi)容如何。
  •   內(nèi)容很新,書(shū)不錯(cuò),很詳細(xì)
  •   內(nèi)容很基礎(chǔ),快遞很快
  •   配套教程.自學(xué)中.
  •   這機(jī)書(shū)不錯(cuò),值得買(mǎi)
  •   包裝挺好的,內(nèi)容也很不錯(cuò),值
  •   如題。這本書(shū)值得一買(mǎi)
  •   還沒(méi)開(kāi)始看,不過(guò)好
  •   還不錯(cuò),如果是原版的,就更好了.
  •   看這不錯(cuò) 最近在搞這個(gè) 試試看
  •   不錯(cuò),特價(jià)買(mǎi)的 還沒(méi)時(shí)間看呢
  •   發(fā)貨速度快 質(zhì)量還可以
  •   還在看 后面再評(píng)論
  •   還沒(méi)開(kāi)封,目前專(zhuān)注在iPhone上
  •   適合有一定基礎(chǔ)的人來(lái)研究,暫時(shí)沒(méi)有什么確定......
  •   國(guó)內(nèi)很少有這樣書(shū)籍
  •   我看的不夠仔細(xì),真心好書(shū)。還得重新看
  •   翻了一下覺(jué)得不錯(cuò)。
  •   內(nèi)容講的比較透
  •   此書(shū)不是很新,價(jià)格有點(diǎn)偏高,內(nèi)容一般。
  •   還沒(méi)發(fā)現(xiàn)有啥亮點(diǎn)
  •   全書(shū)大部分都在講怎么拖控件,而不告訴你為什么,感覺(jué)像是使用手冊(cè)。概念的東西幾句話(huà)帶過(guò),看完之后收獲并不大
  •   渣一般的翻譯 渣啊 真心特意回來(lái)吐槽的 什么**水平 完全就是用谷歌翻譯的吧 逗比還是怪怪回去學(xué)校好好呆著 明顯不是開(kāi)發(fā)人員翻譯的
  •   這個(gè)書(shū)的印刷我就不說(shuō)了,有些頁(yè)印刷的超級(jí)黑,有些超級(jí)淺,要是實(shí)體店里肯定不會(huì)要這個(gè)本書(shū),太坑爹了
  •   翻譯的很差,幸虧之前學(xué)過(guò)一段時(shí)間objectivec,不然都沒(méi)法看,沒(méi)買(mǎi)的絕對(duì)不推薦!
  •   原作是不錯(cuò)的,但譯文太差了.這本書(shū)翻譯的人居然有10幾個(gè)人,大多不懂技術(shù),而且好多語(yǔ)句也不通順,覺(jué)得是機(jī)譯的.容易誤導(dǎo)初學(xué)的人.
  •   譯者應(yīng)該不是搞技術(shù)的,dealloc翻譯成“重新分配”,意思完全就反了,應(yīng)該是“解除分配”才對(duì),或者翻譯成“釋放”。還有“Control-click”竟然翻譯成“控制單擊”,明顯不懂技術(shù),甚至連最基本的電腦估計(jì)都沒(méi)用過(guò)。但總體翻譯還是可以的
  •   這本書(shū)非常精彩,讀起來(lái)幾乎可以毫不費(fèi)力的理解。這是學(xué)習(xí)Cocoa API的最佳之選。不過(guò)還是建議了解Objective-C再讀這本書(shū)。
  •   還沒(méi)看完,內(nèi)容很不錯(cuò),容易看懂
  •   很不錯(cuò),挺好的書(shū),很有用
  •   看了以后覺(jué)得內(nèi)容不錯(cuò)
  •   書(shū)還可以第一次買(mǎi)MAC開(kāi)發(fā)的書(shū)以前一直作WINDOWS
  •   很不錯(cuò)的一本cocoa入門(mén)書(shū)籍
  •   此書(shū),比較適合我這種入門(mén)級(jí)的人,講的比較透徹。看完此書(shū),還是需要看看別的書(shū)來(lái)深入一下。有些地方,看其他書(shū)不明白的地方,看這個(gè)也就明白了。說(shuō)說(shuō)翻譯的人吧,原書(shū)是單詞分行,加了“-”。翻譯過(guò)來(lái),行夠長(zhǎng)的話(huà),就不要帶“-”了。我就不明白了,翻譯的人是怎么會(huì)犯這種小錯(cuò)誤。我開(kāi)始懷疑,是什么樣的人翻譯這本書(shū)。會(huì)不會(huì)把原書(shū)的意思翻譯成南轅北轍了。
  •   內(nèi)容很翔實(shí),包括很多技術(shù)細(xì)節(jié)的詳細(xì)描述,不過(guò)建議初學(xué)者先花幾天熟悉一下objective-c(火星語(yǔ))+_+
  •   徘徊了很久才買(mǎi)的
  •   蘋(píng)果開(kāi)發(fā)書(shū)籍
 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7