苹果开发之Cocoa编程(原书第4版)

《苹果开发之Cocoa编程(原书第4版)》

基本信息

原书名:CocoaProgrammingforMacOSX:FourthEdition

作者:(美)希莱加斯(Hillegass,A.)(美)普雷布尔(Preble,A.)[作译者介绍]

译者:黄敏郝刚

出版社:机械工业出版社

ISBN:9787111391364

上架时间:2012-8-22

出版日期:2012年8月

开本:16开

页码:1

版次:1-1

所属分类:计算机>软件与程序设计>移动开发>iPhone

计算机>软件与程序设计>综合>高级程序语言设计

更多关于》》》《苹果开发之Cocoa编程(原书第4版)》

内容简介

书籍

计算机书籍

《苹果开发之Cocoa编程(原书第4版)(华章程序员书库)》是在Aaron多年教学经验的基础上进行了总结提炼的精华之作,加之前面3版不断推敲和完善,已经成为学习Cocoa编程的入门级经典书籍。本书系统介绍了Objective-C语言、Cocoa主要的设计模式、必要的开发工具Xcode和Instruments等,同时新引入了ARC、blocks、view-basedtableviews和Mac应用商店,并专门开辟一章用于介绍在iOS上的基础开发。相比于之前的版本,本书在Cocoa框架新特性、新技术的基础上,更加侧重实战,也更加结合应用发展的最新趋势。全书以具体的实例贯穿,引导读者通过实践学习Cocoa框架的基本思想。在本书中,读者不仅能够看到技术细节,更能看到不断剖析、层层递进的解决问题的思路,甚至可以看到如何查找资料、获取帮助的方法,帮助读者建立规范、科学的设计开发习惯。阅读本书不要求读者拥有任何的Mac编程经验,只需要了解基本的C语言,以及面向对象的知识即可。相信本书能够推动苹果中文社区的进一步发展、壮大,也希望能够将Objective-C和Cocoa框架以及苹果产品背后一流的技术实力从细微处展现出来,帮助那些致力于创新、变革以及追求完美的人们。

目录

《苹果开发之cocoa编程(原书第4版)(华章程序员书库)》

译者序

前 言

致 谢

第1章 什么是cocoa1

1.1 历史简介1

1.2 开发工具3

1.3 编程语言3

1.4 对象、类、方法和消息4

1.5 框架4

1.6 如何阅读本书5

1.7 约定5

1.8 常见错误6

1.9 如何学习6

第2章 起步7

2.1 xcode7

2.1.1 新建项目7

2.1.2 main函数10

2.2 interfacebuilder10

2.2.1 utility区11

2.2.2 空白窗口11

2.2.3 页面布局12

2.2.4 dock14

2.2.5 创建一个类14

2.2.6 创建一个实例16

2.2.7 创建连接16

2.3 回顾objective-c18

2.3.1 objective-c中的类型和常量19

2.3.2 查看头文件19

2.3.3 编辑实现文件20

2.3.4 编译和运行21

2.3.5 awakefromnib22

2.4 文档23

2.5 你做了什么24

2.6 应用程序运行过程24

第3章 objective-c26

3.1 创建和使用实例26

3.2 使用已有的类27

3.2.1 给nil发送消息31

3.2.2 nsobject、nsarray、nsmutablearray和nsstring32

3.2.3 组合和继承35

3.3 创建自己的类36

3.3.1 创建lotteryentry类36

3.3.2 更改main.m文件38

3.3.3 实现description方法39

3.3.4 编写初始化器initializer41

3.3.5 带参数的初始化器42

3.4 调试器43

3.5 你做了什么47

3.6 静态分析器47

3.7 补充知识:消息机制工作原理48

3.8 挑战49

第4章 内存管理50

4.1 手动内存管理51

4.1.1 创建没有内存泄漏的彩票程序52

4.1.2 dealloc函数54

4.1.3 自动释放对象54

4.1.4 retain计数规则56

4.2 accessor方法57

4.3 使用arc60

4.3.1 强引用60

4.3.2 弱引用60

4.3.3 arc补充知识61

第5章 target/action62

5.1 一些nscontrol子类的常见用法64

5.1.1 nsbutton64

5.1.2 nsslider65

5.1.3 nstextfield65

5.2 开始speakline示例67

5.3 xib文件中的布局设置68

5.4 实现speaklineappdelegate类71

5.5 补充:通过代码设置72

5.6 挑战72

5.7 调试建议73

第6章 helper对象75

6.1 委托75

6.2 nstableview及其datasource79

6.3 用户界面布局81

6.4 建立连接83

6.5 编辑speaklineappdelegate.m文件83

6.5.1 在实现委托时的常见错误85

6.5.2 对象委托85

6.6 补充知识:委托是怎样工作的86

6.7 挑战1:创建委托87

6.8 挑战2:创建一个数据源87

第7章 键–值编码和键–值观察88

7.1 键–值编码88

7.2 绑定89

7.3 键–值观察kvo91

7.4 使对象的键可观察91

7.5 properties93

7.6 补充知识1:键路径95

7.7 补充知识2:键–值观察96

第8章 nsarraycontroller97

8.1 从raiseman应用开始98

8.2 键–值编码和nil105

8.3 添加排序功能106

8.4 补充知识:不使用nsarraycontroller进行排序107

8.5 挑战1107

8.6 挑战2107

第9章 nsundomanager110

9.1 nsinvocation110

9.2 nsundomanager的工作机制110

9.3 为raiseman添加撤销功能112

9.4 键–值观察115

9.5 撤销编辑操作116

9.6 插入后立即编辑118

9.7 补充知识:窗口和undo管理器120

第10章 archiving121

10.1 nscoder和nscoding122

10.1.1 编码122

10.1.2 解码123

10.2 文档架构124

10.2.1 info.plist和nsdocumentcontroller124

10.2.2 nsdocument125

10.2.3 nswindowcontroller127

10.3 保存和nskeyedarchiver127

10.4 载入和nskeyedunarchiver127

10.5 为文件类型设置扩展名和图标129

10.6 补充知识1:避免死循环131

10.7 补充知识2:创建protocol131

10.8 补充知识3:自动保存文档132

10.9 补充知识4:没有undo功能的基于文档的应用程序133

10.10 统一类型标识符133

第11章 coredata基本原理134

11.1 nsmanagedobjectmodel134

11.2 interface136

11.2.1 基于视图的表格视图137

11.2.2 连接和绑定140

11.2.3 coredata如何工作145

11.3 补充知识:基于视图和基于单元格的表格视图比较146

11.4 挑战147

第12章 nib文件和nswindowcontroller148

12.1 nspanel148

12.2 向应用程序添加面板149

12.2.1 设置菜单项150

12.2.2 appcontroller.m151

12.2.3 preferences.xib152

12.2.4 preferencecontroller.m155

12.3 补充知识:nsbundle157

12.4 挑战157

第13章 userdefaults158

13.1 nsdictionary和nsmutabledictionary159

13.1.1 nsdictionary159

13.1.2 nsmutabledictionary160

13.2 nsuserdefaults160

13.3 设置defaults161

13.3.1 设置程序标识符161

13.3.2 为defaults的名字建立键161

13.3.3 注册defaults162

13.4 让用户编辑defaults163

13.5 使用defaults164

13.5.1 禁用自动创建未命名新文档164

13.5.2 设置表格视图的背景色165

13.6 补充知识1:nsuserdefaultscontroller166

13.7 补充知识2:从命令行读写defaults166

13.8 挑战167

第14章 使用notifications168

14.1 notifications是什么168

14.2 notifications不是什么168

14.3 nsnotification169

14.4 nsnotificationcenter169

14.5 发布notification171

14.6 注册成为观察者171

14.7 当notification到达时怎么处理172

14.8 userinfo字典172

14.9 补充知识:delegates和notifications173

14.10 挑战173

第15章 使用告警窗口174

15.1 让用户确认删除175

15.2 挑战177

第16章 本地化178

16.1 本地化nib文件179

16.2 字符串表181

16.2.1 创建字符串表181

16.2.2 使用字符串表182

16.3 补充知识1:ibtool183

16.4 补充知识2:格式化字符串中符号的顺序184

第17章 自定义视图185

17.1 视图层次185

17.2 绘制视图186

17.2.1 创建视图子类的实例187

17.2.2 sizeinspector188

17.2.3 drawrect189

17.3 使用nsbezierpath绘图191

17.4 nsscrollview192

17.5 用程序创建视图195

17.6 补充知识1:单元格195

17.7 补充知识2:isflipped196

17.8 挑战197

第18章 图片和鼠标事件198

18.1 nsresponder198

18.2 nsevent198

18.3 捕获鼠标事件199

18.4 使用nsopenpanel200

18.4.1 修改xib文件201

18.4.2 代码编辑203

18.5 在视图中合成图片204

18.6 视图的坐标系统206

18.7 autoscrolling208

18.8 补充知识:nsimage208

18.9 挑战209

第19章 键盘事件210

19.1 nsresponder211

19.2 nsevent212

19.3 使用自定义视图创建一个新的工程212

19.3.1 界面布局212

19.3.2 创建连接214

19.3.3 编写代码216

19.4 补充知识:rollovers219

19.5 毛边蓝框220

第20章 绘制带属性的文本222

20.1 nsfont222

20.2 nsattributedstring223

20.3 绘制字符串和属性字符串225

20.4 显示字母225

20.5 让视图生成pdf数据226

20.6 补充知识:nsfontmanager228

20.7 挑战1229

20.8 挑战2229

第21章 粘贴板和nil-targetedactions230

21.1 nspasteboard231

21.2 在bigletterview中添加剪切、复制和粘贴功能232

21.3 nil-targetedactions233

21.4 补充知识1:哪个对象发送了action消息235

21.5 补充知识2:uti和剪贴板236

21.6 补充知识3:延迟复制技术236

21.7 挑战1237

21.8 挑战2237

第22章 categories238

22.1 在nsstring中添加方法238

22.2 补充知识:声明私有方法240

第23章 拖放241

23.1 设置bigletterview为拖动作的源241

23.1.1 开始拖操作242

23.1.2 释放以后244

23.2 设置bigletterview为拖操作的目的244

23.2.1 registerfordraggedtypes:245

23.2.2 添加高亮效果245

23.2.3 实现拖操作目的方法246

23.2.4 添加第二个的bigletterview对象247

23.3 补充知识:operationmask247

第24章 nstimer248

24.1 界面布局250

24.2 建立连接251

24.3 为tutorcontroller添加代码253

24.4 补充知识:nsrunloop255

24.5 挑战255

第25章 工作表256

25.1 添加sheet窗口256

25.1.1 添加outlet和action257

25.1.2 界面布局258

25.1.3 添加代码261

25.2 补充知识1:contextinfo261

25.3 补充知识2:模式化窗口262

第26章 创建nsformatters263

26.1 简单的格式化器类264

26.1.1 创建colorformatter.h265

26.1.2 编辑xib文件265

26.1.3 nscolorlist267

26.1.4 在字符串中搜索子串267

26.1.5 实现基本的格式化器方法267

26.2 nscontrol类的delegate269

26.3 检查部分字符串270

26.4 返回属性字符串的格式化器272

26.5 补充知识:nsvaluetransformer272

第27章 打印273

27.1 处理页面设置273

27.2 补充知识:是在屏幕上绘图吗277

27.3 挑战277

第28章 webservice278

28.1 ranchforecast项目279

28.1.1 nsurlconnection280

28.1.2 在schedulefetcher中添加xml解析功能281

28.1.3 界面布局284

28.1.4 编写控制器代码285

28.2 打开url286

28.3 挑战:添加一个webview286

第29章 blocks288

29.1 块语法290

29.1.1 块内部的内存和对象操作291

29.1.2 块的可用性292

29.1.3 ranchforecast:异步开发292

29.1.4 接收异步响应293

29.2 挑战:实现一个delegate296

第30章 ios开发297

30.1 将ranchforecast移植到ios297

30.2 rootviewcontroller299

30.3 添加导航控制器302

30.4 scheduleviewcontroller303

30.5 uitableviewcontroller304

30.6 视图控制器切换305

30.7 挑战306

第31章 视图切换307

31.1 开始308

31.1.1 创建管理视图控制器类309

31.1.2 创建视图控制器及其xib文件309

31.2 给mydocument添加视图切换功能311

31.3 调整窗口尺寸312

第32章 coredatarelationships314

32.1 模型编辑314

32.2 创建自定义nsmanagedobject类315

32.2.1 employee316

32.2.2 department317

32.3 界面布局318

32.4 事件及nextresponder320

第33章 coreanimation322

33.1 scattered322

33.2 隐式动画及action327

33.3 挑战1329

33.4 挑战2329

第34章 并发性330

34.1 多线程330

34.1.1 巨大的分歧331

34.1.2 简单的cocoa后台线程332

34.2 scattered升级版:instruments中的timeprofiling333

34.3 nsoperationqueue336

34.3.1 scattered的多线程解决方案336

34.3.2 线程的同步处理338

34.4 补充知识:更快的scattered程序338

34.5 挑战339

第35章 cocoa和opengl340

35.1 一个简单的cocoa/opengl应用程序340

35.2 界面布局341

35.3 代码编写344

第36章 nstask347

36.1 zipspector347

36.1.1 同步读取351

36.1.2 iping352

36.2 挑战:.tar和.tgz文件355

第37章 发布应用356

37.1 buildconfigurations356

37.2 创建release版本358

37.3 应用沙箱360

37.3.1 权限360

37.3.2 文件访问与权限的折中361

37.4 苹果应用商店362

结束语364

本图书信息来源于:中国互动出版网

相关推荐