• Cocoa编程开发者手册


    Cocoa编程开发者手册(Objective-C权威著作超一流翻译阵容

    【美】 奇斯纳尔(Chisnall,D.)  著

    霍炬等 译

    ISBN 978-7-121-12239-2

    2013年7月出版

    定价:128.00元

    804页

    16开

    编辑推荐

    对概念细节与技术原理论述非常充分,彻底弥补官方文档缺憾

    本书中Objective-C相关章节堪称全面而权威

    创建APP所需各项技术在本书中得以完整覆盖,且有机结合

    开发成熟Cocoa应用须经过实践项目磨练,本书可帮你跨越这一门槛

    即使无面向对象基础,阅读本书时对XCode也毫无不适。

    内容提要

    本书是关于Mac OS X上Cocoa API的指南,涵盖了从用户界面到网络编程各个方面的特性。本书共七个部分,详细叙述了核心的框架,以及其他许多用来构建丰富应用程序的组件,指出了庞大的API中最有价值的地方,指引读者进一步学习。

    本书适合Mac OS X应用程序开发人员及爱好者阅读。

    目录

    第一部分 Cocoa概述

    第1 章 Cocoa 与Mac OS X ............................................................................2

    1.1 理解何时该用Cocoa..................................................................................................2

    1.1.1 Carbon................................................................................................................3

    1.1.2 Java.....................................................................................................................4

    1.1.3 Cocoa.................................................................................................................5

    1.1.4 UNIX API..........................................................................................................6

    1.1.5 其他选择............................................................................................................7

    1.2 理解Cocoa 在Mac OS X 中的角色..........................................................................7

    1.2.1 Cocoa .................................................................................................................8

    1.2.2 Quartz.................................................................................................................9

    1.2.3 Core Foundation ...............................................................................................11

    1.2.4 Darwin..............................................................................................................12

    1.2.5 XNU .................................................................................................................13

    1.3 概览...........................................................................................................................14

    第2 章 Cocoa 的可选语言 .............................................................................15

    2.1 面向对象...................................................................................................................15

    2.2 Objective-C................................................................................................................17

    2.2.1 Objective-C 的可选编译器.............................................................................18

    2.2.2 与Java 及C++ 的区别...................................................................................19

    2.2.3 Objective-C 2.0................................................................................................21

    2.3 Ruby 与Python.........................................................................................................22

    2.4 小结...........................................................................................................................22

    第3 章 使用Apple 的开发工具......................................................................23

    3.1 获取Apple 的开发工具 ............................................................................................24

    3.2 Interface Builder........................................................................................................24

    3.2.1 Outlet 与Action...............................................................................................26

    3.2.2 Cocoa 绑定......................................................................................................27

    3.2.3 绘制简单的应用程序......................................................................................28

    3.3 Xcode.........................................................................................................................31

    3.3.1 创建简单的项目..............................................................................................31

    3.3.2 OpenStep Bundle.............................................................................................33

    3.3.3 开发样例..........................................................................................................34

    3.3.4 不用Xcode 来编译.........................................................................................35

    3.4 Objective-C................................................................................................................36

    3.4.1 为何学习Objective-C.....................................................................................37

    3.4.2 对C 的添加.....................................................................................................37

    3.4.3 异常与同步 ......................................................................................................44

    3.4.4 自省..................................................................................................................47

    3.4.5 C 中的Objective-C.........................................................................................50

    3.4.6 Objective-C 2.0................................................................................................51

    3.4.7 Block ................................................................................................................54

    3.4.8 Objective-C++..................................................................................................56

    3.5 Cocoa 规约................................................................................................................57

    3.5.1 命名..................................................................................................................57

    3.5.2 内存管理..........................................................................................................60

    3.5.3 构造器与初始化器..........................................................................................62

    3.6 小结...........................................................................................................................64

    第二部分 Cocoa框架

    第4 章 Foundation:Objective-C 基础库........................................................66

    4.1 一般概念...................................................................................................................67

    4.1.1 可变的..............................................................................................................67

    4.1.2 Class Cluster ....................................................................................................67

    4.2 Core Foundation 类型...............................................................................................71

    4.3 基本数据类型...........................................................................................................72

    4.3.1 非对象类型......................................................................................................72

    4.3.2 字符串..............................................................................................................73

    4.3.3 数字和值的装箱..............................................................................................75

    4.3.4 数据..................................................................................................................76

    4.3.5 缓存和丢弃数据..............................................................................................77

    4.3.6 日期和时间......................................................................................................78

    4.4 容器 ...........................................................................................................................79

    4.4.1 比较和排序......................................................................................................79

    4.4.2 原生容器 ..........................................................................................................82

    4.4.3 数组..................................................................................................................82

    4.4.4 字典 ..................................................................................................................84

    4.4.5 集合..................................................................................................................84

    4.5 枚举类型 ...................................................................................................................85

    4.5.1 利用高级消息枚举..........................................................................................87

    4.5.2 利用block 枚举 ...............................................................................................89

    4.5.3 支持快速枚举..................................................................................................90

    4.6 属性列表...................................................................................................................95

    4.6.1 序列化..............................................................................................................96

    4.6.2 用户默认值......................................................................................................98

    4.7 和文件系统交互.....................................................................................................101

    4.7.1 Bundle............................................................................................................101

    4.7.2 工作区和文件管理........................................................................................104

    4.7.3 使用路径工作................................................................................................106

    4.7.4 文件访问 ........................................................................................................106

    4.8 通知.........................................................................................................................107

    4.8.1 请求通知 ........................................................................................................108

    4.8.2 发送通知........................................................................................................109

    4.8.3 发送异步通知................................................................................................110

    4.8.4 分布式通知....................................................................................................113

    4.9 小结.........................................................................................................................114

    第5 章 应用程序相关概念............................................................................115

    5.1 Run Loop.................................................................................................................115

    5.2 应用程序和委托.....................................................................................................122

    5.3 响应者链.................................................................................................................123

    5.3.1 事件传递........................................................................................................124

    5.3.2 目标与活动....................................................................................................127

    5.3.3 变成首先响应者............................................................................................128

    5.4 应用程序里的Run Loop........................................................................................128

    5.5 委托与通知.............................................................................................................131

    5.6 视图层次.................................................................................................................134

    5.6.1 窗口................................................................................................................134

    5.6.2 视图................................................................................................................135

    5.6.3 格子................................................................................................................136

    5.7 总结.........................................................................................................................137

    第6 章 创建图形用户界面............................................................................138

    6.1 位置视图.................................................................................................................138

    6.2 嵌套视图.................................................................................................................143

    6.2.1 剪裁视图........................................................................................................143

    6.2.2 滚动视图........................................................................................................144

    6.2.3 页签视图........................................................................................................145

    6.2.4 分割视图........................................................................................................146

    6.2.5 方框................................................................................................................147

    6.3 创建视图.................................................................................................................148

    6.3.1 按钮................................................................................................................148

    6.3.2 文本视图........................................................................................................150

    6.3.3 数据视图........................................................................................................150

    6.3.4 菜单................................................................................................................158

    6.4 Cocoa 绑定 ..............................................................................................................160

    6.4.1 键—值编码....................................................................................................160

    6.4.2 键—值观测....................................................................................................165

    6.4.3 公开绑定........................................................................................................168

    6.4.4 通用控制器....................................................................................................169

    6.4.5 绑定与用户默认值........................................................................................170

    6.4.6 在Interface Builder 中使用绑定 ..................................................................170

    6.5 小结.........................................................................................................................176

    第7 章 窗口与菜单.......................................................................................177

    7.1 理解窗口.................................................................................................................178

    第8 章 Cocoa 中的文本...............................................................................181

    8.1 字符串的构建与析构.............................................................................................182

    8.2 字符串标注.............................................................................................................184

    8.3 本地化.....................................................................................................................186

    8.3.1 本地化的宏定义............................................................................................187

    8.3.2 Strings 文件...................................................................................................188

    8.3.3 格式字符串的本地化....................................................................................189

    8.4 文本存储.................................................................................................................190

    8.5 理解字体.................................................................................................................191

    8.5.1 转换字体........................................................................................................192

    8.5.2 罗列字体........................................................................................................196

    8.6 显示文本.................................................................................................................196

    8.6.1 基本绘制........................................................................................................196

    8.6.2 布局管理器....................................................................................................199

    8.6.3 附件(attachment) ........................................................................................202

    8.6.4 文本视图........................................................................................................203

    8.6.5 文本控件单元................................................................................................204

    8.7 编写自定义文本容器.............................................................................................208

    8.8 使用多个文本视图.................................................................................................212

    8.9 小结.........................................................................................................................215

    第三部分 Cocoa文档

    第9 章 创建文档驱动型应用程序.................................................................218

    9.1 Cocoa 文档模型......................................................................................................219

    9.1.1 文件类型........................................................................................................220

    9.1.2 文档对象........................................................................................................223

    9.2 创建应用程序骨架.................................................................................................223

    9.3 创建文档.................................................................................................................225

    9.3.1 载入窗口........................................................................................................225

    9.3.2 建立文档模型................................................................................................227

    9.3.3 读入和保存文档............................................................................................227

    9.3.4 文档创建事件................................................................................................230

    9.4 扩展Outliner...........................................................................................................231

    9.4.1 定义原生文件格式........................................................................................231

    9.4.2 定义外部文件格式........................................................................................233

    9.4.3 支持读入和保存............................................................................................236

    9.5 支持撤销 .................................................................................................................241

    9.5.1 注册撤销操作................................................................................................242

    9.5.2 创建撤销组....................................................................................................243

    9.5.3 处理撤销操作................................................................................................244

    9.5.4 撤销用户界面................................................................................................244

    9.6 给Outliner 增加撤销功能......................................................................................245

    9.7 总结.........................................................................................................................254

    第10 章 Core Data......................................................................................255

    10.1 数据建模介绍.......................................................................................................256

    10.2 理解托管对象.......................................................................................................257

    10.3 属性类型...............................................................................................................258

    10.4 创建数据模型 .......................................................................................................259

    10.5 选择持久存储.......................................................................................................267

    10.5.1 内存存储......................................................................................................267

    10.5.2 XML 存储....................................................................................................267

    10.5.3 二进制存储..................................................................................................268

    10.5.4 SQLite 存储.................................................................................................268

    10.5.5 自定义存储..................................................................................................269

    10.6 存储元数据...........................................................................................................269

    10.7 自动还原...............................................................................................................271

    10.8 Core Data、Spotlight 与Time Machine...............................................................272

    10.9 小结.......................................................................................................................273

    第四部分复杂用户界面

    第11 章 处理结构化数据..............................................................................276

    11.1 数据源和委托对象................................................................................................277

    11.2 表格 ........................................................................................................................277

    11.2.1 表格视图的绘制..........................................................................................278

    11.2.2 使用排序描述符..........................................................................................279

    11.2.3 定制表格视图..............................................................................................281

    11.3 大纲视图................................................................................................................284

    11.3.1 扩展Outliner 示例......................................................................................285

    11.4 浏览器视图............................................................................................................297

    11.4.1 浏览器视图的委托......................................................................................297

    11.4.2 创建浏览器..................................................................................................298

    11.5 集合视图................................................................................................................301

    11.5.1 在集合视图中显示文件..............................................................................302

    11.6 用新控件单元定制视图........................................................................................305

    11.7 创建主- 从视图....................................................................................................308

    11.7.1 作为细节视图的检视器..............................................................................309

    11.8 小结........................................................................................................................313

    第12 章 动态视图........................................................................................314

    12.1 多标签视图...........................................................................................................314

    12.2 分析视图层级结构...............................................................................................315

    12.3 修改视图层级结构...............................................................................................317

    12.3.1 改变视图的父元素......................................................................................317

    12.3.2 重排视图......................................................................................................321

    12.3.3 可拖出窗口的标签......................................................................................325

    12.4 创建动态输入表单...............................................................................................329

    12.4.1 用矩阵控件创建表单..................................................................................330

    12.4.2 用自定义视图创建表单..............................................................................335

    12.4.3 用规则编辑器创建表单..............................................................................339

    12.5 全屏应用程序.......................................................................................................343

    12.6 小结.......................................................................................................................345

    第五部分高级图形

    第13 章 自定义视图.....................................................................................348

    13.1 图形上下文...........................................................................................................349

    13.2 Core Graphics........................................................................................................350

    13.3 用AppKit 绘图 .....................................................................................................353

    13.3.1 绘制形状......................................................................................................354

    13.3.2 用控件单元绘制..........................................................................................358

    13.3.3 绘制文本......................................................................................................366

    13.3.4 创建新控件单元..........................................................................................371

    13.3.5 绘制位图......................................................................................................375

    13.3.6 组合图像......................................................................................................380

    13.4 打印与视图分页 ...................................................................................................382

    13.4.1 打印信息......................................................................................................382

    13.4.2 创建打印任务..............................................................................................383

    13.4.3 视图分页......................................................................................................385

    13.4.4 自动分页......................................................................................................391

    13.5 用调板扩展Interface Builder...............................................................................392

    13.6 小结.......................................................................................................................399

    第14 章 声音与视频.....................................................................................400

    14.1 提示音...................................................................................................................400

    14.2 播放简单的声音...................................................................................................401

    14.3 理解Cocoa 的影片对象.......................................................................................405

    14.4 加上视频...............................................................................................................408

    14.5 编辑媒体...............................................................................................................411

    14.6 低层声音API......................................................................................................412

    14.7 录音和录像...........................................................................................................414

    14.8 支持语音...............................................................................................................417

    14.9 Cocoa 语音合成....................................................................................................418

    14.10 跟用户交谈.........................................................................................................419

    14.11 总结......................................................................................................................424

    第15 章 高级视觉效果 .................................................................................425

    15.1 简单的动画...........................................................................................................425

    15.2 Core Animation 综述.............................................................................................427

    15.2.1 在图层里绘画..............................................................................................428

    15.2.2 设置图层的内容..........................................................................................431

    15.3 理解动画的概念...................................................................................................432

    15.4 加上简单动画.......................................................................................................434

    15.5 图像滤镜...............................................................................................................437

    15.6 定义过渡...............................................................................................................443

    15.7 创建复杂的动画...................................................................................................445

    15.8 Core Animation 三维变换.....................................................................................446

    15.9 OpenGL 与Cocoa 视图........................................................................................450

    15.10 Quartz 合成器......................................................................................................453

    15.11 总结......................................................................................................................454

    第16 章 支持PDF 和HTML........................................................................455

    16.1 AppKit 里的HTML...............................................................................................456

    16.2 高级HTML 支持..................................................................................................458

    16.2.1 WebKit 综述................................................................................................459

    16.2.2 WebView 委托............................................................................................460

    16.2.3 编辑HTML.................................................................................................461

    16.3 WebKit 的动态接口..............................................................................................465

    16.4 PDF 和Quartz.......................................................................................................471

    16.5 显示PDF ..............................................................................................................472

    16.5.1 理解PDF 标注............................................................................................476

    16.5.2 设置文档的元数据......................................................................................479

    16.5.3 编辑PDF.....................................................................................................480

    16.6 小结.......................................................................................................................484

    第六部分用户界面集成

    第17 章 搜索与过滤.....................................................................................486

    17.1 维护文档索引.......................................................................................................487

    17.1.1 创建索引......................................................................................................487

    17.1.2 对文档索引..................................................................................................489

    17.1.3 搜索一个索引..............................................................................................490

    17.2 显示搜索栏...........................................................................................................492

    17.3 搜索文档...............................................................................................................493

    17.4 Spotlight.................................................................................................................503

    17.4.1 监视文件系统事件......................................................................................503

    17.4.2 为元数据编制索引......................................................................................504

    17.4.3 创建元数据导入插件..................................................................................506

    17.4.4 用Spotlight 搜索.........................................................................................511

    17.4.5 Spotlight 的局限性......................................................................................514

    17.5 断言.......................................................................................................................515

    17.5.1 断言语言......................................................................................................515

    17.5.2 直接创建断言..............................................................................................517

    17.5.3 使用断言......................................................................................................519

    17.5.4 显示断言编辑器..........................................................................................520

    17.6 Quick Look............................................................................................................523

    17.6.1 预览包..........................................................................................................524

    17.6.2 实现Quick Look 插件................................................................................524

    17.7 小结.......................................................................................................................526

    第18 章 联系人、日历和私密信息...............................................................528

    18.1 地址簿概述...........................................................................................................529

    18.1.1 一般概念......................................................................................................529

    18.1.2 集合类..........................................................................................................530

    18.2 获取联系人的信息...............................................................................................532

    18.3 检索地址簿...........................................................................................................535

    18.4 填写“ 我” vCard....................................................................................................536

    18.5 在地址簿里增加联系人.......................................................................................538

    18.6 保存私密信息.......................................................................................................538

    18.7 日历.......................................................................................................................547

    18.7.1 日历存储区的概念......................................................................................548

    18.7.2 存取事件......................................................................................................549

    18.7.3 新建日历......................................................................................................552

    18.8 同步数据...............................................................................................................553

    18.8.1 使用Apple 的纲要......................................................................................554

    18.9 小结.......................................................................................................................560

    第19 章 剪贴板............................................................................................561

    19.1 剪贴板概览...........................................................................................................561

    19.2 剪贴板类型...........................................................................................................564

    19.3 对类型进行过滤...................................................................................................566

    19.4 属性列表数据.......................................................................................................567

    19.5 自编码对象...........................................................................................................567

    19.6 文件和剪贴板.......................................................................................................568

    19.7 复制和粘贴...........................................................................................................569

    19.8 拖动和投放...........................................................................................................571

    19.8.1 拖动操作......................................................................................................572

    19.8.2 投放操作......................................................................................................574

    19.8.3 在自定义视图中实现拖放..........................................................................575

    19.9 拖放和数据视图...................................................................................................582

    19.10 小结.....................................................................................................................588

    第20 章 服务...............................................................................................589

    20.1 服务示例...............................................................................................................589

    20.2 一个计算服务 .......................................................................................................591

    20.3 使用服务...............................................................................................................597

    20.4 控制服务菜单 .......................................................................................................599

    20.5 过滤器服务...........................................................................................................600

    20.6 小结.......................................................................................................................601

    第21 章 增加脚本支持.................................................................................602

    21.1 脚本概览...............................................................................................................602

    21.1.1 AppleScript 对象模型..................................................................................604

    21.1.2 脚本词汇表..................................................................................................604

    21.2 将对象脚本化.......................................................................................................605

    21.2.1 理解AppleScript 对象................................................................................606

    21.2.2 提供对象指示符..........................................................................................607

    21.2.3 提供一个脚本定义......................................................................................609

    21.2.4 处理脚本命令..............................................................................................613

    21.2.5 测试脚本支持..............................................................................................617

    21.3 在Cocoa 程序中写脚本 .......................................................................................620

    21.4 把服务显露给Automator.....................................................................................626

    21.5 其他的脚本技术...................................................................................................626

    21.5.1 分布式对象..................................................................................................627

    21.5.2 F-Script.........................................................................................................627

    21.6 小结 .......................................................................................................................628

    第七部分系统编程

    第22 章 联网...............................................................................................630

    22.1 底层套接字编程 ...................................................................................................630

    22.2 Cocoa 流................................................................................................................636

    22.3 URL 的处理..........................................................................................................637

    22.3.1 创建URL.....................................................................................................638

    22.3.2 从URL 装入 ................................................................................................638

    22.3.3 扩展URL 装载系统....................................................................................641

    22.4 Bonjour..................................................................................................................644

    22.4.1 多播DNS.....................................................................................................644

    22.4.2 DNS 服务发现.............................................................................................645

    22.4.3 浏览服务......................................................................................................645

    22.4.4 通告服务......................................................................................................648

    22.5 分布式对象...........................................................................................................649

    22.5.1 对象的发布..................................................................................................650

    22.5.2 获取远程对象 ..............................................................................................652

    22.5.3 一个简单的聊天程序..................................................................................653

    22.6 总结.......................................................................................................................660

    第23 章 并发...............................................................................................661

    23.1 分布式对象...........................................................................................................662

    23.2 线程.......................................................................................................................664

    23.2.1 创建线程......................................................................................................664

    23.2.2 线程局部存储..............................................................................................665

    23.2.3 同步..............................................................................................................665

    23.2.4 原子操作......................................................................................................673

    23.2.5 未来与转发..................................................................................................676

    23.2.6 线程压力测试..............................................................................................678

    23.3 子进程...................................................................................................................679

    23.3.1 创建子进程 ..................................................................................................679

    23.3.2 跟子进程通信..............................................................................................680

    23.3.3 共享内存......................................................................................................681

    23.4 操作队列...............................................................................................................685

    23.5 大调度中心...........................................................................................................690

    23.6 OpenCL.................................................................................................................692

    23.7 小结.......................................................................................................................693

    第八部分附录

    第24 章 可移植的Cocoa.............................................................................696

    24.1 NeXT 和Sun.........................................................................................................696

    24.2 iPhone 上的移动OS X.........................................................................................697

    24.3 OpenStep 和GNU.................................................................................................697

    24.4 GNUstep................................................................................................................698

    24.4.1 GORM..........................................................................................................700

    24.4.2 使用GNUstep 进行构建.............................................................................701

    24.4.3 Étoilé............................................................................................................703

    24.5 QuantumSTEP.......................................................................................................703

    24.6 Cocotron.................................................................................................................704

    24.7 GNUstepWeb 与SOPE.........................................................................................705

    第25 章 高级技巧........................................................................................706

    25.1 预处理器...............................................................................................................707

    25.1.1 初始化程序..................................................................................................707

    25.1.2 For Each.......................................................................................................707

    25.1.3 Objective-C 常量.........................................................................................709

    25.1.4 简单模板......................................................................................................710

    25.1.5 友好的调试输出..........................................................................................711

    25.2 控制结构...............................................................................................................711

    25.2.1 NSDictionary 滥用......................................................................................712

    25.2.2 键—值编码..................................................................................................713

    25.2.3 Trampoline ...................................................................................................714

    25.2.4 状态机..........................................................................................................717

    25.3 整洁代码...............................................................................................................719

    25.3.1 Toll-Free 桥接..............................................................................................719

    25.3.2 多重继承......................................................................................................720

    25.4 优化.......................................................................................................................722

    25.4.1 实例方法指针..............................................................................................723

    25.4.2 推翻动态调度..............................................................................................724

    25.4.3 栈中的类......................................................................................................726

    25.4.4 对象池..........................................................................................................730

    25.4.5 内联函数......................................................................................................731

    25.4.6 避免对象......................................................................................................733

    25.5 Cocoa 跨平台........................................................................................................734

    25.6 运行系统...............................................................................................................737

    25.6.1 理解对象实现..............................................................................................738

    25.6.2 枚举所有子类 ..............................................................................................740

    25.6.3 给一个类增加方法......................................................................................743

    前言

    本书的目标是作为一份Mac OS X 上Cocoa API 的指南。我们将详细叙述核心的框架,以及其他许多用来构建丰富应用程序的组件。

    这些API 数量非常庞大。在大多数Cocoa 程序中,你会包含Cocoa.h 这个头文件,它包含了两个构成Cocoa的核心框架。这个头文件在预处理之后( 包含了所有引用的头文件) 足有100 000 行之多。如果把预处理后的头文件打印出来,你将能得到两倍于本书厚度的手册,而这还只是包括了核心的API,没有其他在本书讨论过的更高级的部分。

    本书希望作为一本指引性的图书,标出这组庞大的API 中有价值的地方供进一步学习。和许多旅游书籍一样,这本书也会包含一些“非看不可”的目的地,所有人都应该了解一下,此外还有一些更为有趣但被关注过多的部分。

    对Cocoa 这样的框架更精深的掌握来自于经年的练习和使用它所包含的类。这本书虽然提供了一份导引,但只有在你阅读了书中的内容并实践来开发自己的应用之后,才能成为一名OS X 开发专家。

    谁该阅读这本书

    这本书面向的是希望学习用Cocoa 的丰富API 开发OS X 应用程序的人。它的目标读者并非想学iPhone 开发的人。iPhone SDK 虽然是设计为让有经验的Mac 程序员能够很容易学习,而且和桌面API 也共享了很多核心的概念和框架,但仍然是一个独立的系统。阅读本书确实能让你在以后学习iPhone 开发时更容易一些,同时我们也指出了桌面和移动平台API 的区别,但它不会直接涵盖iPhone API。

    如果你希望学习如何开发Mac OS X 下的丰富应用程序,这本书能帮到你。它涵盖了所有的核心API——自20 世纪90 年代初期NeXT 的工作站开始就基本没有变化,只是加入了互联网络环境的集成和处理多媒体的内容。

    阅读本书需要一些基本的编程知识,前面的几章包含了对Objective-C 的介绍,对于已经熟悉类似C 或者Java 语言的读者应该足够了。但这一部分并不是为介绍基本编程概念而写的。

    概览与组织

    本书分为七个部分,每个部分都包含一部分的Cocoa API。

    “Cocoa 概述”包含Cocoa 的背景,它在OS X 中的地位,它来自哪里。这部分包含并描述了Objective-C语言,并给读者提供了用来创建Cocoa 应用的工具的概览。

    在“Cocoa 框架” 中你会接触到组成Cocoa API 核心的Foundation 和Application Kit 框架。Foundation 提供了底层的核心函数,而Application Kit 则在它之上提供了构建丰富应用所需的特性。这部分介绍了这两个框架,概述它们如何结合起来,以及如何用它们创建应用程序。你将看到Cocoa 应用程序模型之下的基本概念,包括事件如何传送、绘图模型如何工作。在本部分的末尾你将理解如何用Cocoa 创建简单的应用。

    “Cocoa 文档”涵盖了用Cocoa 开发文档驱动应用程序。文档驱动的应用会给某些持久化模型创建一致的窗口,通常是给文件。Cocoa 包含了很多支持此类应用的代码。你还会在这部分接触到Core Data 框架,它处理文档的自动持久化。

    第四部分,“复杂用户界面”,将深入Application Kit。你会学习到更高级的视图对象,通过数据源与程序交互,并学会如何给它们动态提供数据。你还会看到如何创建新的视图对象。

    第五部分,“高级图形技术”,在以上基础上探索了Cocoa 的一些更复杂的图形能力。包括桌面和iPhoneOS X 都有的Core Animation 框架,让你能用少量代码就创建吸引人的动画效果。这部分还划出了一小部分讨论音频世界,如何提供用户界面的听觉响应。这包括使用OS X 的语音识别和合成API。本部分结束你将可以编写复杂的多媒体Cocoa 应用程序。

    “用户界面集成”集中于让应用程序融入OS X 环境的那部分技术,这样它们就不再像是孤立的程序。这包括与系统搜索功能,以及许多共享存储,比如地址簿与日历的集成。

    最后一部分,“系统编程”,介绍了Cocoa 的底层特性,包括网络编程和并发。这包括创建socket到从远程URL 下载数据,并探讨了Foundation 框架的分布式对象系统。

    本书不希望作为Apple 优秀文档的替代品,Cocoa 的每个类都有附带的参考,同时有在线版本并随Xcode 环境提供。其中有很多还提供了包含特定集合的类之间关系的指南。这样的材料总共有数万页。

    你不会在书中找到每个类每个方法的详细描述,如果想仔细了解具体一个类有什么用,可以查看Apple 文档。但你能找到这些类大多数重要而且常用的特性,以及它们之间的关系。Apple 文档尽管详细,但详细得有点过头。阅读本书能帮你找到解决特定问题所需的那个子集。

    Apple 提供的示例程序同样也和本书提供的不同。本书的每个例子都是为了展示Cocoa API 的某个独立方面的,而Apple 的例子则一般是展示完整API 的完整应用程序。OS X 包含的TextEdit 应用就是这样一个例子。这是一个功能完整的富文本编辑器,有数千行代码。如果你希望看到一个Cocoa 的文档支持和文本系统如何一起工作的详细例子,那这是不可多得的资源,但在你对Cocoa 还不非常熟悉的时候要理解整份代码是非常困难的。

  • 相关阅读:
    【干货分享】嵌入式学习路线公开!(书籍推荐+视频推荐+练手项目)
    test
    pytest学习小结
    pytest运行报错 TypeError: attrib() got an unexpected keyword argument 'convert'
    pytest插件下载网址
    python修改文件内容的3种方法详解
    PermissionError: [Errno 13] Permission denied 如何解决
    Pycharm退出pytest模式(run pytest in模式)
    直流电机驱动电路设计-----学习笔记
    2019年全国大学生电子设计竞赛赛题分享与浅析
  • 原文地址:https://www.cnblogs.com/broadview/p/3242447.html
Copyright © 2020-2023  润新知