《苹果开发之Cocoa编程 第3版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:AARONHILLEGAS著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2009
  • ISBN:9787121092398
  • 页数:433 页
图书介绍:本书涵盖了最新的Mac编程技术,包括Xcode 3、Objective-C 2.0、Core Data、垃圾收集器,以及CoreAnimation。系统介绍了Objective-C语言、Cocoa主要的设计模式、必要的开发工具Xcode、Interface Builder和 Instruments。全书以具体的实例贯穿,引导读者通过实践学习Cocoa框架的基本思想。阅读这本书不要求任何的Mac编程经验,只需要基本的C语言,以及面向对象的知识。

第1章 什么是Cocoa 1

1.1 历史简介 1

1.2 开发工具 3

1.3 语言 4

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

1.5 框架 6

1.6 怎样阅读这本书 6

1.7 常见错误 7

1.8 怎样学习 8

第2章 起步 9

2.1 Xcode 9

新建一个项目 10

main函数 12

2.2 Interface Builder 13

Library窗口 14

空白窗口 14

布局界面 15

指示窗口 17

创建一个类 17

创建一个对象 19

建立连接 20

2.3 回到XCode 23

Objective-C中的类型和常量 23

查看头文件 24

编辑定义文件 25

编译运行 27

awakeFromNib 28

2.4 文档 29

2.5 你做了什么 30

第3章 Objective-C语言 33

3.1 创建、使用对象 33

3.2 使用已有的类 35

给nil发送消息 40

NSObject、NSArray、NSMutableArray和NSString 41

继承和组合 45

3.3 建自己的类 46

创建LotteryEntry类 46

修改lottery.m 49

实现description方法 50

编写Initializers(初始化器) 55

带参数的Initializer 56

3.4 调试器 58

3.5 补充知识:消息机制工作原理是什么 62

3.6 挑战 63

第4章 内存管理 65

4.1 开关垃圾收集器 66

4.2 使用Garbage Collection 68

4.3 使用Retain计数 68

实现dealloc 71

创建自动释放对象 72

Accessor方法 74

4.4 你完成了什么 77

第5章 Target/Action 79

5.1 一些常用的NSControl子类 81

NSButton 81

NSSlider 82

NSTextField 83

5.2 开始SpeakLine例子 85

5.3 Nib文件的布局 86

使用Interface Builder建立连接 87

NSWindow的initialFirstResponder Outlet 88

5.4 实现AppController类 88

5.5 补充知识:通过代码来设置target 90

5.6 挑战 90

5.7 调试建议 92

第6章 Helper对象 95

6.1 委托 96

6.2 NSTableView和它的dataSource 99

6.3 布局用户界面 102

6.4 创建连接 103

6.5 修改AppController.m 105

实现委托时的常见错误 107

对象委托 107

6.6 补充知识:委托是如何工作的 108

6.7 挑战:创建一个委托 109

6.8 挑战:创建一个数据源 110

第7章 Key-Value Coding;Key-Value Observing 111

7.1 Key-Value Coding 111

7.2 绑定 113

7.3 Key-Value Observing 115

7.4 让Keys可被观察 116

7.5 Properties和它们的Attributes 118

@property和@synthesize 118

一个Property的Attributes 119

7.6 补充知识:Key Paths 120

7.7 补充知识:Key-value Observing 121

第8章 NSArrayController 123

8.1 开始写RaiseMan应用 124

在Xcode中 125

在Interface Builder中 128

8.2 Key-Value Coding和nil 132

8.3 添加排序 133

8.4 补充知识:不使用NSArrayController排序 134

8.5 挑战一 135

8.6 挑战二 135

第9章 NSUndoManager 139

9.1 NSInvocation 139

9.2 NSUndoManager如何工作 140

9.3 给RaiseMan添加撤销 142

9.4 Key-Value Observing 145

9.5 撤销修改 146

9.6 插入操作后立刻开始编辑 149

9.7 补充知识:窗口和撤销管理器 151

第10章 Archiving 153

10.1 NSCoder和NSCoding 154

编码 154

解码 156

10.2 文档架构 157

Info.plist和NSDocumentController 157

NSDocument 158

NSWindowController 161

10.3 保存和NSKeyedArchiver 161

10.4 载入和NSKeyedUnarchiver 162

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

10.6 补充知识:防止死循环 166

10.7 补充知识:创建一个Protocol 167

10.8 补充知识:不带撤销的Document-Based Application 167

10.9 统一类型标识符 168

第11章 Core Data基本原理 171

11.1 NSManagedObjectModel 171

11.2 Interface 173

创建并配置View 175

连接和绑定 177

11.3 Core Data是怎么工作的 180

第12章 Nib文件和NSWindowController 183

12.1 NSPanel 183

12.2 给程序添加一个Panel 184

设置菜单项 186

AppController.m 187

Preferences.nib 188

PreferenceController.m 192

12.3 补充知识:NSBundle 194

12.4 挑战 195

第13章 User Default 197

13.1 NSDictionary和NSMutableDictionary 198

NSDictionary 198

NSMutableDictionary 199

13.2 NSUserDefaults 200

不同类型的defaults的优先级 201

13.3 设置程序的标识符 202

13.4 命名Defaults中的键 202

13.5 注册Defaults 203

13.6 让用户编辑defaults 203

13.7 使用Defaults 205

禁止生成Untitled Documents 205

设置表格视图的背景颜色 206

13.8 补充知识:NSUserDefaultsController 207

13.9 补充知识:使用Command line来读写Defaults 207

13.10 挑战 208

第14章 使用Notifications 209

14.1 什么是Notification 209

14.2 Notifications不是什么 210

14.3 NSNotification和NSNotificationCenter 210

14.4 发送一个Notification 212

14.5 注册成为Observer 213

14.6 处理接受到的Notification 214

14.7 UserInfo字典 214

14.8 补充知识:Delegates和Notifications 215

14.9 挑战 216

第15章 使用Alert Panels 217

15.1 让用户确认删除 218

15.2 挑战 221

第16章 本地化 223

16.1 nib文件的本地化 224

16.2 字符串表 226

创建字符串表 227

使用字符串表 229

16.3 补充知识:ibtool 230

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

第17章 自定义视图 233

17.1 View的层次 233

17.2 让View绘制自己 235

创建一个View子类的对象 236

大小检查 237

drawRect 238

17.3 使用NSBezierPath绘制 240

17.4 NSScrollView 242

17.5 通过程序创建View 245

17.6 补充知识:单元格 245

17.7 补充知识:isFlipped 247

17.8 挑战 248

第18章 Image和鼠标事件 249

18.1 NSResponder 249

18.2 NSEvent 249

18.3 获取鼠标事件 251

18.4 使用NSOpenPanel 251

修改nib文件 252

编辑代码 255

18.5 在View中合成一个图像 256

18.6 View的坐标系统 258

18.7 Autoscrolling 261

18.8 补充知识:NSIMage 261

18.9 挑战 262

第19章 键盘事件 263

19.1 NSResponder 265

19.2 NSEvent 265

19.3 创建一个带有自定义View的项目 266

界面布局 266

建立连接 267

编写代码 270

19.4 补充知识:Rollovers 274

19.5 毛边的蓝色框 275

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

20.1 NSFont 277

20.2 NSAttributedString 278

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

20.4 显示字母 281

20.5 让你的View生成PDF数据 283

20.6 补充知识:NSFontManager 286

20.7 挑战1 286

20.8 挑战2 286

第21章 粘贴板和Nil-Targeted Actions 287

21.1 粘贴板 288

21.2 给BigLetterView添加剪切、复制和粘贴 289

21.3 Nil-Targeted Actions 290

如何搜索响应链 291

查看Nib文件 292

21.4 补充知识:哪个对象发送了Action消息 293

21.5 补充知识:延迟复制 293

21.6 挑战1 294

21.7 挑战2 294

第22章 Categories 295

22.1 给NSString添加一个方法 295

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

22.3 补充知识:Protocol的非正式写法 297

第23章 拖放 299

23.1 让BigLetterView成为一个拖动源 300

23.2 让BigLetterView成为拖动目的地 303

registerForDraggedTypes 304

添加高亮 304

实现Dragging-Destination方法 305

测试 306

23.3 补充知识:Operation Mask 307

第24章 NSTimer 309

24.1 界面布局 311

24.2 创建连接 312

24.3 添加代码到AppController 314

24.4 补充知识:NSRunLoop 316

24.5 挑战 316

第25章 工作表 317

25.1 添加一个工作表 318

添加Outlet和Action 319

界面布局 319

添加代码 323

25.2 补充知识:contextInfo 324

25.3 补充知识:模式窗口 325

第26章 创建NSFormatter 327

26.1 一个基本格式化器 328

新建ColorFormatter.h 329

修改Nib文件 329

NSColorList 331

在字符串里搜索子字符串 332

实现基本格式化器的方法 332

26.2 NSControl的委托 334

26.3 检查部分字符串 335

26.4 让格式化器返回Attributed字符串 337

第27章 打印 339

27.1 处理分页 339

27.2 补充知识:现在是输出到屏幕上么 344

27.3 挑战 344

第28章 Web Service 345

28.1 AmaZone 346

28.2 界面布局 347

28.3 写代码 349

28.4 挑战:添加一个WebView 353

第29章 视图切换 355

29.1 设计 356

开始 356

创建ManagedViewController类 357

创建ViewControllers和它们的NIB文件 358

添加视图切换到MyDocument 360

29.2 调整窗口大小 362

第30章 Core Data Relationships 365

30.1 编辑模型 365

30.2 创建自定义NSManagedObject类 366

Employee 367

Department 368

30.3 界面布局 369

DepartmentView.nib 369

EmployeeView.nib 371

30.4 事件和nextResponder 372

第31章 垃圾收集 375

31.1 非对象的数据类型 376

C的原始类型 376

Core Foundation 377

31.2 多项式示例 377

31.3 Instruments 383

31.4 补充知识:弱引用 385

31.5 挑战:试错 385

第32章 Core Animation 387

32.1 创建CALayer 388

32.2 使用CALayer和CAAnimation 390

移除Polynomials 392

同时移动多个层 393

调整层大小并重绘 393

CALayer 394

第33章 一个简单的Cocoa/OpenGL应用程序 397

33.1 使用NSOpenGLView 397

33.2 写程序 398

界面布局 399

写代码 402

第34章 NSTask 405

34.1 多线程对多进程 405

34.2 ZIPspector 406

34.3 异步读取 410

34.4 iPing 411

34.5 挑战:.tar和.tgz文件 415

第35章 结束 417

35.1 挑战 418

索引 419