词条 | 苹果开发之Cocoa电脑编程 |
释义 | 基本信息原书名:Cocoa(R) Programming for Mac(R) OS X (3rd Edition) 原出版社: Addison-Wesley Professional 作者:Aaron Hillegas 译者:钱友才 陈勇 王健 出版社:电子工业出版社 ISBN:9787121092398 出版日期:2009 年8月 开本:16开 页码:433 版次:3-1 编辑推荐从零开始学习Cocoa的首选图书. 涵盖了最新的Mac编程技术 高级Mac OS X开发者们联手强烈推荐.. Mac OS X编程图书的标杆 Aaron Hillegass多年Cocoa教学实践经验的总结 内容简介本书的内容是作者多年的Cocoa教学实践经验的总结,涵盖了最新的Mac编程技术,包括Xcode 3、Objective-C2.0、CoreData、垃圾收集器,以及CoreAnimation。本书系统介绍了Objective-C语言、Cocoa主要的设计模式、必要的开发工具Xcode、Interface Builder和Instnanents。全书贯穿以具体的实例,引导读者通过实践掌握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 委托(delegate) 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 统一类型标识符(universal type identifiers) 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章 工作表(sheet) 317 25 1 添加一个工作表 318 添加outlet和action 319 界面布局 319 添加代码 323 25 2 补充知识:contextinfo 324 25 3 补充知识:模式窗口(modal windows) 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 译者序作为个人PC时代开创者的苹果,在过去的33年里,历经大起大落。而最近几年,我们看到那个锐意创新的苹果正踏着梦幻的脚步重新回到舞台的中心,再次站在潮流的顶点。对于用户而言,苹果总是能设计制造出非凡的产品勾起用户的欲望,一次次用完美的细节打动用户的心;对于程序员而言,Darwin的UNIX/BSD血统有着天然的亲和力, 而Objective-C和Cocoa框架,则让程序员认识了苹果一流产品背后的技术实力。正是这些从硬件到系统、从语言到框架的多层次的长期积淀,让苹果能够创造出如iPhone这样的明星产品。 虽然苹果电脑在美国一直有着不错的市场占有率,但因为价格的关系,对于国内的用户而言,它最多只能是多数人眼中的梦中情人而已。而这几年汇率的变化,让苹果产品的性价比变得极为出色,OS X系统的占有率在稳步提升,如果算上iPhone的系统,国内OS X系统的拥有量已经相当可观。因此放在国内来讲,这个平台对程序员而言是一个全新的机会。但目前而言,这个平台上中文参考书确实匮乏,因此才有了这本书的翻译。希望本书的翻译出版能够促进苹果中文开发社区的进一步的发展,帮助更多的程序员了解苹果的开发平台。 本书的作者Aaron Hillegass是Big Nerd Ranch(一家专业的培训机构)的专职培训Cocoa的老师。这样一个有着多年的实际教学经验的作者写出的书,再经过前两版对内容的推敲,此书自然是一本久经考验的入门必备好书。这本书剖析了很多关键内容的来龙去脉,既交代了原因,也分析了解决问题的思路,包括如何获取资料、查看文档,甚至于如何在社区提问等等,真正做到了授之以渔。 本书的第1至5章,第11至20章由陈勇翻译,第28至35章由王健翻译,剩下的由钱友才翻译。 感谢许其峰和苗涛在本书翻译过程中提供的帮助,另外还要感谢博文视点的徐定翔和白爱萍两位编辑的细致和耐心的工作,正是在他们的帮助下,初次接触翻译的我们才能顺利完成任务,最后还要感谢本书原作者Aaron Hillegass伸出的援助之手,让这本书得以尽快面世。 尽管翻译过程中诚惶诚恐,生怕有辞不达意之失,更怕糟蹋了这本经典的Cocoa编程书籍,但囿于经验和能力,书中的问题和疏漏在所难免,还请读者能够给予反馈,我们将维护一份勘误表,并为您在学习本书过程中遇到的问题提供力所能及的帮助。 媒体评论“Aaron的书是Mac OSX编程图书的标杆——措辞优雅、精雕细琢,是Leopard开发的优秀图书。” ———Scott Stevenson “从零开始学习Cocoa的首选图书。Aaron是少数(很可能是唯一)全职的专业Cocoa讲师之一,他多年的教学经验都浓缩在本书中。” ——Tim Burks,软件工程师,Nu编程语言创始人 “如果你是UNIX或Windows的程序员,希望为Mac OS X开发一些新应用,或者想将应用移植到Mac上,那么这本书是必备的参考和培训书。” ——Kevin H Spencer,Apple认证技术协调员 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。