第一图书网

好学的Objective-C

Jiva DeVoe 人民邮电出版社
出版时间:

2012-3  

出版社:

人民邮电出版社  

作者:

Jiva DeVoe  

译者:

林本杰  

Tag标签:

无  

前言

  序言  Objetive-C在IT行业可谓受到了不公平的对待。尽管它很强大,并且是动态的面向对象语言,但却没有像C++、Java等语言一样得到足够认可。  在为iPhone OS 3写Cocoa Touch时,我意识到了需要写一本配套的书,以帮助新手们在接触Cocoa和Cocoa Touch等高层框架之前克服学习Objective-C的障碍。  所以当有人请我写一本专门介绍Objective-C语言的书时,我欣然接受了。  最后,我感觉到可以通过这本书向Mac、iPhone和iPad开发新手们介绍基础知识,因此万分激动。我期待这本书可以催化Objective-C在更多不同平台上发展。Objective-C完全有理由在Unix、Windows等平台上使用。  读者只需具备有限的计算机知识。我会从最基础的知识开始阐述,但是你至少需要懂得一些操作计算机的基础知识。  如果你已经熟悉了其他一些编程语言,这也不会有任何负面影响。我介绍的一些东西对你而言可能是一种回顾,不要担心,你会学到很多关于Objective-C的细节。  如果你接触过Objective-C,希望你可以在本书中发现一些有价值的新信息。我会努力将这些知识设计得便于你查找。这样一来,你无需逐页浏览,就能跳到某一部分并了解如何完成你想完成的任务。  对于本书中使用的一些约定,我尽量确保一致,同时尽量遵照苹果的约定。唯一一个比较明显的例外就是使用“方法”来表示实例和类的函数。苹果通常会倾向于使用“消息”。某种程度上这是缘于Objective-C受到Smalltalk的影响。  关于键盘快捷方式,我选用“Command键”这一术语来表示多数苹果键盘上空格键左侧的键。大家可能知道它也叫苹果键,因为就在几年前它上面会印有一个苹果标志。此外Command键旁边的键称为Option键,Option键旁边的就是Control键。这些是和苹果文档的约定保持一致的。  关于存储对象的变量,我通常会把它们称作“实例变量”。有些书会习惯用该术语或者其缩写“ivar”来指代作为类的一部分的变量。对此,我喜欢使用“成员变量”。在我看来,成员变量可以是实例变量,但不是所有的实例变量都是成员变量。  在文中提及方法时,我会遵照苹果引用它们的约定:使用方法名,但不包括参数。比如以下方法:  -(void)someMethodUsingParam1:(NSString *)param1 andParam2:(NSString *)param2;  就会被写做:-someMethodUsingParam1:andParam2。如果它是一个类方法,打头的连字符就会被替换成一个+号,就像你在写类定义中的方法一样。  关于示例代码,在需要构建完整项目的章节,通常我会尽可能提供代码的完整列表。在没有提供的情况下,你可以从本书网站上下载包含图片资源和其他相关支持文件的项目。有部分章节可能无法创建一个完整的项目来展示相关技术。在这种情况下,代码列表可能只是一些片段,你可用作自定义代码的基础。由于这些代码片段无法构成功能完整的项目,在网站上也就没有提供示例项目。  我希望你在阅读本书时会有一种和我写作时一样的愉悦体验。在我看来,一本好的技术书的标志就是它不会被束之高阁。它会被好好地放在书桌上或者书桌旁,因为经常需要翻阅它。我希望这本书在你的手中也会有这样的地位,并且希望它书角翘起、封面破损,每页都留有潦草的笔迹,但仍然能在未来几年对你有所帮助。  ……

内容概要

  要为市面上最热门的Mac、iPhone和iPad等设备创建应用,就必须掌握Objective-C和面向对象编程。本书作者是顶尖的Mac开发人员和专业作家。通过本书的详尽指引,即使是编程新手也可以迅速学会Objective-C。本书全方位地介绍了Objective-C,从基础知识到资深程序员所使用的高级技术等众多主题,其中包括内存管理、多个框架的结合使用、线程安全的技巧,以及Xcode的详细用法等。
  通过阅读本书,读者将能够:
  掌握Objective-C语法、运行时和Xcode,编写出第一个移动应用程序
  创建类,使用属性,了解对象
  使用代码块、线程、KVO和协议
  定义和编写宏,处理错误并在项目中使用框架
  清理线程,学会使用设计模式,掌握高级技术
  利用NSCoder读写数据
  为Windows、Linux和其他平台编写代码
  本书既能引导Mac、iPhone和iPad开发新手入门,又可帮助高级程序员提高技能,是Objective-C开发人员的案头必备书籍。

作者简介

Jiva DeVoe
拥 有25年的软件开发经验,是专门开发iPhone和Mac OS X 应用的Random
Ideas软件公司的创始人,已有多个iPhone应用成为苹果广告中的推荐应用。此外,他还是Cocoa Touch for iPhone
OS 3 Developer Reference的作者。他的博客地址为www.random-ideas.net。

书籍目录

第一部分 Objective-C简介
 第1章 Objective-C简介 
  1.1 使用Xcode 进行开发 
  1.1.1 新建项目 
  1.1.2 项目文件 
  1.1.3 添加源码文件 
  1.1.4 主Xcode窗口 
  1.2 理解编译过程 
  1.2.1 编码 
  1.2.2 源码、编译代码和可执行文件 
  1.2.3 查看应用包 
  1.2.4 编译设置 
  1.3 使用Xcode静态分析器 
  1.4 Objective-C运行时 
  1.5 小结 
 第2章 基本语法 
  2.1 使用语句和表达式 
  2.1.1 声明变量 
  2.1.2 使用注释 
  2.1.3 标量类型 
  2.1.4 使用特殊变量修饰符 
  2.1.5 结构体 
  2.1.6 使用类型定义 
  2.1.7 使用enum 
  2.1.8 指针 
  2.1.9 使用运算符 
  2.1.10 三目运算符 
  2.2 使用函数 
  2.2.1 函数 
  2.2.2 定义函数 
  2.2.3 实现与接口 
  2.2.4 链接实现文件 
  2.3 控制程序流 
  2.3.1 使用条件语句 
  2.3.2 使用循环语句 
  2.4 活学活用 
  2.5 小结 
 第3章 添加对象 
  3.1 对象 
  3.1.1 创建类 
  3.1.2 声明对象 
  3.1.3 调用对象方法 
  3.2 使用属性 
  3.2.1 状态和行为的区别 
  3.2.2 使用点标记 
  3.3 应用对象 
  3.3.1 创建员工对象 
  3.3.2 创建经理类 
  3.3.3 在HR 主函数中关联不同的类 
  3.4 小结 
 第4章 Objective-C内存管理 
  4.1 使用引用计数 
  4.1.1 内存管理规则 
  4.1.2 使用自动释放 
  4.1.3 对象内部的内存 
  4.2 使用垃圾回收 
  4.2.1 垃圾回收器 
  4.2.2 为项目配置垃圾回收 
  4.2.3 在垃圾回收项目中使用框架 
  4.3 关键的垃圾回收模式 
  4.3.1 管理有限的资源 
  4.3.2 编写支持垃圾回收的基础应用 
  4.3.3 处理nib文件中的对象 
  4.3.4 强制垃圾回收 
  4.3.5 处理空指针和垃圾回收 
  4.3.6 使用垃圾回收的面向对象接口 
  4.4 项目使用的内存管理模型 
  4.5 小结 
第二部分 更多特性
 第5章 代码块 
  5.1 了解代码块 
  5.1.1 声明代码块 
  5.1.2 使用代码块 
  5.2 了解重要的代码块作用域 
  5.2.1 管理代码块内存 
  5.2.2 通过typedef提高代码块的可读性 
  5.3 在线程中使用代码块 
  5.3.1 使用GCD 
  5.3.2 使用GCD在线程中调度代码块 
  5.4 通用的代码块设计模式 
  5.4.1 将代码块作为映射 
  5.4.2 在标准API 中使用代码块 
  5.5 在易并行任务中应用代码块 
  5.5.1 创建项目 
  5.5.2 在数组中使用代码块过滤素数 
  5.5.3 使用GCD 
  5.6 小结 
 第6章 键值编码和键值观察 
  6.1 通过键值编码访问对象属性 
  6.1.1 键路径 
  6.1.2 编写符合KVC标准的存取器方法 
  6.1.3 在数组中使用KVC 
  6.1.4 在结构体和标量中使用KVC 
  6.1.5 查找对象特性 
  6.2 观察对符合KVC标准的值的修改 
  6.2.1 使用KVO 
  6.2.2 注册成为观察者 
  6.2.3 定义KVO的回调 
  6.2.4 移除观察者 
  6.2.5 实现手动通知 
  6.2.6 使用KVO的风险 
  6.3 应用键值观察 
  6.4 小结 
 第7章 使用协议 
  7.1 优先使用组合而不是继承 
  7.1.1 了解为什么不需要(或不想要)多继承 
  7.1.2 理解协议如何解决问题 
  7.1.3 记录期望别人实现的接口 
  7.2 在对象中实现协议 
  7.2.1 声明协议 
  7.2.2 声明一个类实现了协议 
  7.2.3 声明一个必须实现协议的对象 
  7.2.4 正式协议和非正式协议 
  7.2.5 确定一个对象是否实现了可选方法 
  7.2.6 避免协议循环依赖 
  7.3 协议使用示例 
  7.4 小结 
 第8章 扩展现有类 
  8.1 使用第三方框架和类 
  8.2 使用类别 
  8.2.1 声明类别 
  8.2.2 实现类别方法 
  8.2.3 在头文件中声明类别 
  8.2.4 使用类别 
  8.2.5 通过类别拆分功能 
  8.2.6 扩展类方法 
  8.2.7 分析类别的局限性 
  8.2.8 通过类别实现协议 
  8.2.9 了解在NSObject上创建类别的风险 
  8.3 通过匿名类别扩展类 
  8.4 在现有类中关联变量 
  8.5 小结 
 第9章 编写宏 
  9.1 回顾编译过程 
  9.2 定义宏 
  9.2.1 定义常量 
  9.2.2 通过编译传递常量 
  9.2.3 在宏中使用变量 
  9.2.4 字符串化 
  9.2.5 使用条件判断 
  9.2.6 使用内置宏 
  9.3 小结 
 第10章 错误处理 
  10.1 错误分类 
  10.2 使用错误处理的不同机制 
  10.2.1 使用返回码 
  10.2.2 使用异常 
  10.2.3 使用NSError 
  10.3 小结 
第三部分 使用 Foundation框架
 第11章 了解框架之间如何配合工作 
  11.1 了解Foundation框架 
  11.2 在项目中使用框架 
  11.2.1 添加框架 
  11.2.2 包含头文件 
  11.2.3 考虑垃圾回收 
  11.3 小结 
 第12章 使用字符串 
  12.1 了解字符串声明语法 
  12.1.1 使用格式化字符串 
  12.1.2 使用其他NSString方法 
  12.1.3 使用NSString类别 
  12.2 小结 
 第13章 使用集合 
  13.1 使用数组 
  13.1.1 使用字典 
  13.1.2 使用Set集合 
  13.1.3 认识可变性 
  13.2 了解集合和内存管理 
  13.3 遍历 
  13.4 向元素发送消息 
  13.5 排序和过滤 
  13.6 在集合中使用代码块 
  13.7 小结 
 第14章 使用NSValue、NSNumber和NSData 
  14.1 使用NSValue和NSNumber 
  14.1.1 通过NSValue包装任意数据类型 
  14.1.2 通过NSNumber包装数字 
  14.1.3 通过NSDecimalNumber进行算术运算 
  14.2 使用NSData和NSMutableData 
  14.2.1 创建NSData对象 
  14.2.2 访问NSData对象中的生数据 
  14.3 小结 
 第15章 处理时间和日期 
  构建日期 
  使用时间间隔 
  日期比较 
  使用NSCalender 
  使用时区 
  15.1 使用NSDateFormatter 
  15.2 小结 
第四部分 高级主题
 第16章 通过多个线程实现多处理 
  16.1 同步代码 
  16.1.1 使用锁 
  16.1.2 使用@synchronize关键字 
  16.1.3 理解原子性 
  16.2 创建NSTread 
  16.2.1 创建线程 
  16.2.2 控制运行的线程 
  16.2.3 访问主线程 
  16.2.4 通过执行选择器跨线程 
  16.3 使用NSOperation和NSOperationQueue 
  16.3.1 创建操作 
  16.3.2 将操作加入到队列 
  16.3.3 控制队列参数 
  16.3.4 使用不同的操作 
  16.4 小结 
 第17章 Objective-C设计模式 
  17.1 识别解决方案中的模式 
  17.2 用Objective-C描述设计模式 
  17.2.1 使用单例 
  17.2.2 委托责任 
  17.2.3 将变化通知给多个对象 
  17.3 小结 
 第18章 利用NSCoder读写数据 
  在对象上实现NSCoding协议 
  对象编码 
  基本类型编码 
  使用对象图 
  使用其他类型的数据 
  解码对象 
  18.1 使用NSArchiver和NSUnarchiver 
  18.2 处理存档文件格式和遗留数据 
  18.3 小结 
 第19章 在其他平台上使用Objective-C 
  19.1 使用GNUstep 
  19.1.1 使用Cocotron 
  19.1.2 使用其他开源库 
  19.2 展望未来 
  19.3 小结


图书封面

图书标签Tags

广告

下载页面


好学的Objective-C PDF格式下载



网上评价非常好的一本Objective-C的教材和参考书!

OC的书,我手头有四五本,加上我和同事自己编写的。
但是,这一本深入浅出,而且在不是很厚的书页中,很好地讲解了OC开发的内容。
理论实践结合比较紧密。

如果有开发经验,我和我的朋友们觉得,这本书,可以让你在2小时到两天的时间内,
快速上手Objective-C语言开发!


和Objective-c基础有相似的地方,不过更基础。


把书看了两遍,用来掌握基本知识就行。深入还是要找其他的


写得很好,适合有基础的人


有没有基础,都可以看看,最好在学些C语言


书的内容好,我看书用了一周的时间就都学会操作了,现在正在设计项目


在书城里挑选了整个下午,最终选择了这本,然后在当当上买的。翻译的还行,比起其他的高销量oc书籍翻译的要好些。看了大概3小时,概念讲解清楚,有c/c++基础的看此书很顺畅。纸张一般般了,目前没发现印刷问题。推荐想学oc的买这本。


这是见过的最偷工减料的书,里面根本没什么内容,里面全是废话,**货,不知道为什么还有那么多的好评,想不到当当网里也有操作评价的无语了,建议初级学者千万不要买,绝对坑爹


内容不多,适合入门


这本书是学IOS必学的一本书!强烈推荐!!!


推荐同行购买!


书很好,看了,写的很不错


还没读,随后来补


过些天看完oc基础再看这个、感觉应该会理解的更透一点


good book,i ***e the book very much .


好书,但我买时点错了多买了本,郁闷


不错,书收到时候非常快


针对入门级的说明嘛好的!


作为入门读物,条理清晰。


正在看,觉得还不错!


简单直接


书是帮同学买的,他很喜欢!


本本都是精品


同学说好,那就好


一书在手,object-c就都会了。


很合适的一本Objective-C的入门书籍


讲解很到位,深入浅出,适合初学者,推荐!


如果你从头学起,该书还是不错的选择,就像各种语言的入门书籍一样,从helloworld开始。


强人推荐的,应该不会错


插图很丰富,适于初学object-c的人


简明扼要,很快就可以上手


还没开始看呢 有时间再说吧


与时俱进 切实如需
制作精良 受益匪浅


翻了翻,还不错,书太薄,没有深入,一句话就是书的价值与金钱的价值不成正比


还没来得及看,看后再来补充


这本书主要偏于理论,讲解的还是比较细


it行业的同志们,这本书不错哦~


看了一周,写这本书的作者应该是obj-c高手,但本书写的太偏重于理论,基本是概念讲解,很少有例子,读起来很闷,像哲学和法律一样……


如果你想见识下当代先进翻译器把整本书翻译后的原封不动的原汁原味的结果,此书当为首选。全书不见Apple字眼,苹果倒是香气喷人。最后,林本杰先生是否可以和大家分享一下这个强大的翻译器呢?


封面刮花啦!


满篇机器翻译,译者太不负责,严重鄙视


专业技术书,挺厚一本。得慢慢看了


入门书确实不错


不错,买来学习


初学的书,蜻蜓点水。


相关图书