《苹果开发之Cocoa编程 原书第4版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)希莱加斯,(美)普雷布尔著;黄敏,郝刚等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111391364
  • 页数:365 页
图书介绍:本书介绍了为Mac OS X开发应用程序的所有知识,对Mac程度开发人员来说极其有用。书中包括两种常用的Mac开发工具:Xcode和Instruments,并涵盖了Objective-C语言和Cocoa中的主要设计模式。阅读本书能帮助你理解和运用Apple的在线文档,编写有你自己风格的代码。

第1章 什么是Cocoa 1

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 Xcode 7

2.1.1新建项目 7

2.1.2 main函数 10

2.2 Interface Builder 10

2.2.1 utility区 11

2.2.2空白窗口 11

2.2.3页面布局 12

2.2.4 dock 14

2.2.5创建一个类 14

2.2.6创建一个实例 16

2.2.7创建连接 16

2.3回顾Objective-C 18

2.3.1 Objective-C中的类型和常量 19

2.3.2查看头文件 19

2.3.3编辑实现文件 20

2.3.4编译和运行 21

2.3.5 awakeFromNib 22

2.4文档 23

2.5你做了什么 24

2.6应用程序运行过程 24

第3章Objective-C 26

3.1创建和使用实例 26

3.2使用已有的类 27

3.2.1给nil发送消息 31

3.2.2 NSObject、NSArray、NSMutableArray和NSString 32

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编写初始化器initializer 41

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使用ARC 60

4.3.1强引用 60

4.3.2弱引用 60

4.3.3ARC补充知识 61

第5章Target/Action 62

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

5.1.1 NSButton 64

5.1.2 NSSlider 65

5.1.3 NSTextField 65

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及其dataSource 79

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键-值观察KVO 91

7.4使对象的键可观察 91

7.5 Properties 93

7.6补充知识1:键路径 95

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

第8章NSArrayController 97

8.1从RaiseMan应用开始 98

8.2键-值编码和nil 105

8.3添加排序功能 106

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

8.5挑战1 107

8.6挑战2 107

第9章NSUndoManager 110

9.1 NSInvocation 110

9.2 NSUndoManager的工作机制 110

9.3为RaiseMan添加撤销功能 112

9.4键-值观察 115

9.5撤销编辑操作 116

9.6插入后立即编辑 118

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

第10章Archiving 121

10.1 NSCoder和NSCoding 122

10.1.1编码 122

10.1.2解码 123

10.2文档架构 124

10.2.1 Info.plist和NSDocumentController 124

10.2.2 NSDocument 125

10.2.3 NSWindowController 127

10.3保存和NSKeyedArchiver 127

10.4载入和NSKeyedUnarchiver 127

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

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

10.7补充知识2:创建Protocol 131

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

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

10.10统一类型标识符 133

第11章Core Data基本原理 134

11.1 NSManagedObjectModel 134

11.2 Interface 136

11.2.1基于视图的表格视图 137

11.2.2连接和绑定 140

11.2.3 Core Data如何工作 145

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

11.4挑战 147

第12章NIB文件和NSWindowController 148

12.1 NSPanel 148

12.2向应用程序添加面板 149

12.2.1设置菜单项 150

12.2.2 AppController.m 151

12.2.3 Preferences.xib 152

12.2.4 PreferenceController…m 155

12.3补充知识:NSBundle 157

12.4挑战 157

第13章User Defaults 158

13.1 NSDictionary和NSMutableDictionary 159

13.1.1 NSDictionary 159

13.1.2 NSMutableDictionary 160

13.2 NSUserDefaults 160

13.3设置Defaults 161

13.3.1设置程序标识符 161

13.3.2为defaults的名字建立键 161

13.3.3注册defaults 162

13.4让用户编辑Defaults 163

13.5使用Defaults 164

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

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

13.6补充知识1:NSUserDefaultsController 166

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

13.8挑战 167

第14章 使用Notifications 168

14.1 Notifications是什么 168

14.2 Notifications不是什么 168

14.3 NSNotification 169

14.4 NSNotificationCenter 169

14.5发布notification 171

14.6注册成为观察者 171

14.7当notification到达时怎么处理 172

14.8 userInfo字典 172

14.9补充知识:Delegates和Notifications 173

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:ibtool 183

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

第17章 自定义视图 185

17.1视图层次 185

17.2绘制视图 186

17.2.1创建视图子类的实例 187

17.2.2 Size Inspector 188

17.2.3 drawRect 189

17.3使用NSBezierPath绘图 191

17.4 NSScrollView 192

17.5用程序创建视图 195

17.6补充知识1:单元格 195

17.7补充知识2:isFlipped 196

17.8挑战 197

第18章 图片和鼠标事件 198

18.1 NSResponder 198

18.2 NSEvent 198

18.3捕获鼠标事件 199

18.4使用NSOpenPanel 200

18.4.1修改XIB文件 201

18.4.2代码编辑 203

18.5在视图中合成图片 204

18.6视图的坐标系统 206

18.7 Autoscrolling 208

18.8补充知识:NSImage 208

18.9挑战 209

第19章 键盘事件 210

19.1 NSResponder 211

19.2 NSEvent 212

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

19.3.1界面布局 212

19.3.2创建连接 214

19.3.3编写代码 216

19.4补充知识:Rollovers 219

19.5毛边蓝框 220

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

20.1 NSFont 222

20.2 NSAttributedString 223

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

20.4显示字母 225

20.5让视图生成PDF数据 226

20.6补充知识:NSFontManager 228

20.7挑战1 229

20.8挑战2 229

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

21.1 NSPasteboard 231

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

21.3 Nil-Targeted Actions 233

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

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

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

21.7挑战1 237

21.8挑战2 237

第22章Categories 238

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补充知识:Operation Mask 247

第24章NSTimer 248

24.1界面布局 250

24.2建立连接 251

24.3为TutorController添加代码 253

24.4补充知识:NSRunLoop 255

24.5挑战 255

第25章 工作表 256

25.1添加sheet窗口 256

25.1.1添加outlet和action 257

25.1.2界面布局 258

25.1.3添加代码 261

25.2补充知识1:contextInfo 261

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

第26章 创建NSFormatters 263

26.1简单的格式化器类 264

26.1.1创建ColorFormatter.h 265

26.1.2编辑XIB文件 265

26.1.3 NSColorList 267

26.1.4在字符串中搜索子串 267

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

26.2 NSControl类的Delegate 269

26.3检查部分字符串 270

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

26.5补充知识:NSValueTransformer 272

第27章 打印 273

27.1处理页面设置 273

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

27.3挑战 277

第28章Web Service 278

28.1 RanchForecast项目 279

28.1.1 NSURLConnection 280

28.1.2在ScheduleFetcher中添加XML解析功能 281

28.1.3界面布局 284

28.1.4编写控制器代码 285

28.2打开URL 286

28.3挑战:添加一个WebView 286

第29章Blocks 288

29.1块语法 290

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

29.1.2块的可用性 292

29.1.3 RanchForecast:异步开发 292

29.1.4接收异步响应 293

29.2挑战:实现一个Delegate 296

第30章iOS开发 297

30.1将RanchForecast移植到iOS 297

30.2 RootViewController 299

30.3添加导航控制器 302

30.4 ScheduleViewController 303

30.5 UITableViewController 304

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章Core Data Relationships 314

32.1模型编辑 314

32.2创建自定义NSManagedObj ect类 315

32.2.1 Employee 316

32.2.2 Department 317

32.3界面布局 318

32.4事件及nextResponder 320

第33章Core Animation 322

33.1 Scattered 322

33.2隐式动画及action 327

33.3挑战1 329

33.4挑战2 329

第34章 并发性 330

34.1多线程 330

34.1.1巨大的分歧 331

34.1.2简单的Cocoa后台线程 332

34.2 Scattered升级版:Instruments中的Time Profiling 333

34.3 NSOperationQueue 336

34.3.1 Scattered的多线程解决方案 336

34.3.2线程的同步处理 338

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

34.5挑战 339

第35章Cocoa和OpenGL 340

35.1一个简单的Cocoa/OpenGL应用程序 340

35.2界面布局 341

35.3代码编写 344

第36章N STask 347

36.1 ZIPspector 347

36.1.1同步读取 351

36.1.2 iPing 352

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

第37章 发布应用 356

37.1 Build Configurations 356

37.2创建Release版本 358

37.3应用沙箱 360

37.3.1权限 360

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

37.4苹果应用商店 362

结束语 364