搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Cocoa编程开发者手册
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121122392
  • 作      者:
    (美)David Chisnall著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2013
收藏
编辑推荐
  

《Cocoa编程开发者手册》编著者奇斯纳尔。Cocoa编程环境——Apple的一套非常强大的、干净的、面向对象的API——正日益成为几乎所有当代Mac osx开发的基础。经过了长时间的不断完善和改进,Cocoa已经成熟,形成了一个综合的编程环境,可用于陕速高效地开发Mac osx应用,甚至使其富有乐趣。然而,Cocoa家族API惊人的规模,还有海量的官方文档,可能会吓到你,甚至是经验丰富的程序员。为了帮助Mac osx开发人员梳理和实际使用Cocoa的众多工具和技术,《Cocoa编程开发者手册》对Mac os x上的CocoaAPI做了一个导览,深入讨论和实践展示了Cocoa的核心框架和其他重要组件,同时还提请读者注意一些更有趣,但往往被忽视的API和工具。《Cocoa编程开发者手册》以专家级的视角,对于从用户界面设计,到网络编程和性能优化等诸多重要主题进行了探讨。

展开
作者简介
  David Chlsnall,作为实现者和开发人员。他对于Cocoa有着深入的了解。他是GNUstep项目(提供Cocoa APl的开源实现)的活跃贡献者。参与开创了Etoilé项目来构建GNUstep上的桌面环境。他还创建过一个新的Objective—C运行库,为clan9编译器提供Objective—C支持,发表过关于ObjectiVe—C的论文。他为informlT.com撰写过一个关于Objective—C和CoCoa的系列文章,非常受欢迎。他还是The DefinitiveGuide to the Xen Hypervisor(Addison—Wesley,2008)一书的作者。
展开
内容介绍
  《Cocoa编程开发者手册》是关于MacOSX上CocoaAPI的指南,涵盖了从用户界面到网络编程各个方面的特性。《Cocoa编程开发者手册》共七个部分,详细叙述了核心的框架,以及其他许多用来构建丰富应用程序的组件,指出了庞大的API中最有价值的地方,指引读者进一步学习。
  《Cocoa编程开发者手册》适合MacOSX应用程序开发人员及爱好者阅读。
展开
精彩书摘
  《Cocoa编程开发者手册》:
  这个方法从一个保护条件开始,如果收到的通知是错误的对象类型,则立刻中断。这不是必需的,但是所有KVO通知都会被派发到同一个方法中,所以应该多做一些事情保证安全。如果不是在调试,你可能会想不用这段代码,或者在return语句之前设置一个断点,以便在调用错误的时候修正它。 
  这个方法的主体就是一个大的switch语句,以NSKeyValueChangeKindKev为键的整数值作为条件,这个值保存在change字典中。这样可以知道是否发生了这种变化。我们支持三种情况:改变键,增加一个子项,移除子项。还有一种情况是替换集合中的一个对象,但我们目前的模型不支持这种做法,所以也就不需要处理这种情况了。 
  第一种情况在73.86行(代码清单9.11)。目前只由项目标题变化引发。你可能会觉得这部分代码比我们需要的复杂,下面这段更简单的代码可以替换77—83行。 
  这样确实简单一些,但有一个严重问题:这段代码根本不工作。如果实现了一个这样的方法,那么会在运行记录中看到这样的提示:2009.01.2012:44:44.682 0utliner[27412:813]Error setting value for key path title of object(from bound object(null)):[setValue:forUndefinedKey:]:this class is not key valuecoding—compliant for the key title. 
  这个错误是由撤销管理器实现的缺陷造成的。prepareWithInvocationTarget:本应返回一个NSProxy的子类。NSProxy是root对象的替代品,它遵循NSObject协议,但是在方法上只实现了一个小的子集。它用于代理对象,因为几乎所有发送给它的消息都会触发—forwardlnvocation:调用,允许转发。不幸的是,在这里NSUndoManager返回的是NSObject子类(其实就是它本身)。 
  这问题很明显,当发送给NSUndoManager一个对应的消息时,其中实现的任何方法都会简单地被调用。转发机制不起作用了。 
  创建撤销时,这是相当严重的问题。你无法通过一prepareWithInvationTarget:机制调用NSObject和NSUndoManager实现的任何方法。虽然NSObject实现了基本的KVC机制,也无法在这里使用。 
  幸好有一个替代方案。NSObject中有一些后备代码,可以给所有的转发机制构建一个调用,并传给一forwardlnvocation:。我们不能用这些代码来自动构建调用,但仍然可以调用一forwardlnvocation:。每当发送一个由NSObject实现的消息来处理撤销动作时,都会因此而造成一点点麻烦。
  ……
展开
目录
第一部分 Cocoa概述
第1章 Cocoa与MacOSX
1.1 理解何时该用Cocoa
1.1.1 Carbon
1.1.2 Java
1.1.3 Cocoa
1.1.4 UNIXAPI
1.1.5 其他选择
1.2 理解Cocoa在MacOSX中的角色
1.2.1 Cocoa
1.2.2 Quartz
1.2.3 CoreFoundation
1.2.4 Darwin
1.2.5 XNU
1.3 概览
第2章 Cocoa的可选语言
2.1 面向对象
2.2 Objective-C
2.2.1 Objective-C的可选编译器
2.2.2 与Java及C++的区别
2.2.3 Objective-C2.0
2.3 Ruby与Python
2.4 小结
第3章 使用Apple的开发工具
3.1 获取Apple的开发工具
3.2 InterfaceBuilder
3.2.1 Outlet与Action
3.2.2 Cocoa绑定
3.2.3 绘制简单的应用程序
3.3 Xcode
3.3.1 创建简单的项目
3.3.2 OpenStepBundle
3.3.3 开发样例
3.3.4 不用Xcode来编译
3.4 Objective-C
3.4.1 为何学习Objective-C
3.4.2 对C的添加
3.4.3 异常与同步
3.4.4 自省
3.4.5 C中的Objective-C
3.4.6 Objective-C2.0
3.4.7 Block
3.4.8 Objective-C++
3.5 Cocoa规约
3.5.1 命名
3.5.2 内存管理
3.5.3 构造器与初始化器
3.6 小结

第二部分 Cocoa框架
第4章 Foundation:Objective-C基础库
4.1 一般概念
4.1.1 可变的
4.1.2 ClassCluster
4.2 CoreFoundation类型
4.3 基本数据类型
4.3.1 非对象类型
4.3.2 字符串
4.3.3 数字和值的装箱
4.3.4 数据
4.3.5 缓存和丢弃数据
4.3.6 日期和时间
4.4 容器
4.4.1 比较和排序
4.4.2 原生容器
4.4.3 数组
4.4.4 字典
4.4.5 集合
4.5 枚举类型
4.5.1 利用高级消息枚举
4.5.2 利用block枚举
4.5.3 支持快速枚举
4.6 属性列表
4.6.1 序列化
4.6.2 用户默认值
4.7 和文件系统交互
4.7.1 Bundle
4.7.2 工作区和文件管理
4.7.3 使用路径工作
4.7.4 文件访问
4.8 通知
4.8.1 请求通知
4.8.2 发送通知
4.8.3 发送异步通知
4.8.4 分布式通知
4.9 小结
第5章 应用程序相关概念
5.1 RunLoop
5.2 应用程序和委托
5.3 响应者链
5.3.1 事件传递
5.3.2 目标与活动
5.3.3 变成首先响应者
5.4 应用程序里的RunLoop
5.5 委托与通知
5.6 视图层次
5.6.1 窗口
5.6.2 视图
5.6.3 格子
5.7 小结
第6章 创建图形用户界面
6.1 位置视图
6.2 嵌套视图
6.2.1 剪裁视图
6.2.2 滚动视图
6.2.3 页签视图
6.2.4 分割视图
6.2.5 方框
6.3 创建视图
6.3.1 按钮
6.3.2 文本视图
6.3.3 数据视图
6.3.4 菜单
6.4 Cocoa绑定
6.4.1 键-值编码
6.4.2 键-值观测
6.4.3 公开绑定
6.4.4 通用控制器
6.4.5 绑定与用户默认值
6.4.6 在InterfaceBuilder中使用绑定
6.5 小结
第7章 窗口与菜单
7.1 理解窗口
7.1.1 窗口类型
7.2 创建窗口
7.3 创建窗口对象
7.3.1 显示窗口
7.3.2 隐藏窗口
7.3.3 了解窗口控制器
7.3.4 创建一个简单的窗口工厂
7.3.5 保存窗口的位置
7.4 面板
7.4.1 显示标准选盘
7.5 卷帘窗口
7.5.1 创建卷帘窗口
7.5.2 显示标准卷帘窗口
7.6 警告对话框
7.7 菜单
7.7.1 菜单的结构
7.7.2 生成窗口菜单
7.7.3 Dock菜单
7.7.4 检验菜单项
7.7.5 上下文菜单
7.7.6 弹出菜单
7.8 小结
第8章 Cocoa中的文本
8.1 字符串的构建与析构
8.2 字符串标注
8.3 本地化
8.3.1 本地化的宏定义
8.3.2 Strings文件
8.3.3 格式字符串的本地化
8.4 文本存储
8.5 理解字体
8.5.1 转换字体
8.5.2 罗列字体
8.6 显示文本
8.6.1 基本绘制
8.6.2 布局管理器
8.6.3 附件(attachment)
8.6.4 文本视图
8.6.5 文本控件单元
8.7 编写自定义文本容器
8.8 使用多个文本视图
8.9 小结

第三部分 Cocoa文档
第9章 创建文档驱动型应用程序
9.1 Cocoa文档模型
9.1.1 文件类型
9.1.2 文档对象
9.2 创建应用程序骨架
9.3 创建文档
9.3.1 载入窗口
9.3.2 建立文档模型
9.3.3 读入和保存文档
9.3.4 文档创建事件
9.4 扩展Outliner
9.4.1 定义原生文件格式
9.4.2 定义外部文件格式
9.4.3 支持读入和保存
9.5 支持撤销
9.5.1 注册撤销操作
9.5.2 创建撤销组
9.5.3 处理撤销操作
9.5.4 撤销用户界面
9.6 给Outliner增加撤销功能
9.7 小结
第10章 CoreData
10.1 数据建模介绍
10.2 理解托管对象
10.3 属性类型
10.4 创建数据模型
10.5 选择持久存储
10.5.1 内存存储
10.5.2 XML存储
10.5.3 二进制存储
10.5.4 SQLite存储
10.5.5 自定义存储
10.6 存储元数据
10.7 自动还原
10.8 CoreData、Spotlight与TimeMachine
10.9 小结

第四部分 复杂用户界面
第11章 处理结构化数据
11.1 数据源和委托对象
11.2 表格
11.2.1 表格视图的绘制
11.2.2 使用排序描述符
11.2.3 定制表格视图
11.3 大纲视图
11.3.1 扩展Outliner示例
11.4 浏览器视图
11.4.1 浏览器视图的委托
11.4.2 创建浏览器
11.5 集合视图
11.5.1 在集合视图中显示文件
11.6 用新控件单元定制视图
11.7 创建主-从视图
11.7.1 作为细节视图的检视器
11.8 小结
第12章 动态视图
12.1 多标签视图
12.2 分析视图层级结构
12.3 修改视图层级结构
12.3.1 改变视图的父元素
12.3.2 重排视图
12.3.3 可拖出窗口的标签
12.4 创建动态输入表单
12.4.1 用矩阵控件创建表单
12.4.2 用自定义视图创建表单
……
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证