《effective objective-c 2.0:编写高质量ios与os x代码的52个有效方法》是世界级c++开发大师scott meyers亲自担当顾问编辑的“effective software development series”系列丛书中的新作,amazon全五星评价。从语法、接口与api设计、内存管理、框架等7大方面总结和探讨了objective-c编程中52个鲜为人知和容易被忽视的特性与陷阱。书中包含大量实用范例代码,为编写易于理解、便于维护、易于扩展和高效的objective-c应用提供了解决方案。
全书共7章。第1章通论与objective-c的核心概念相关的技巧;第2章讲述的技巧与面向对象语言的重要特征(对象、消息和运行期)相关;第3章介绍的技巧与接口和api设计相关;第4章讲述协议与分类相关的技巧;第5章介绍内存管理中易犯的错误以及如何避免犯这些错误;第6章介绍块与大中枢派发相关的技巧;第7章讲解使用cocoa和cocoa touch系统框架时的相关技巧。
译者序
前言
致谢
第1章 熟悉objective-c 1
第1条:了解objective-c语言的起源 1
第2条:在类的头文件中尽量少引入其他头文件 4
第3条:多用字面量语法,少用与之等价的方法 7
第4条:多用类型常量,少用#define预处理指令 11
第5条:用枚举表示状态、选项、状态码 14
第2章 对象、消息、运行期 21
第6条:理解“属性”这一概念 21
第7条:在对象内部尽量直接访问实例变量 28
第8条:理解“对象等同性”这一概念 30
第9条:以“类族模式”隐藏实现细节 35
第10条:在既有类中使用关联对象存放自定义数据 39
第11条:理解objc_msgsend的作用 42
第12条:理解消息转发机制 46
第13条:用“方法调配技术”调试“黑盒方法” 52
第14条:理解“类对象”的用意 56
.第3章 接口与api设计 60
第15条:用前缀避免命名空间冲突 60
第16条:提供“全能初始化方法” 64
第17条:实现description方法 69
第18条:尽量使用不可变对象 73
第19条:使用清晰而协调的命名方式 78
第20条:为私有方法名加前缀 83
第21条:理解objective-c错误模型 85
第22条:理解nscopying协议 89
第4章 协议与分类 94
第23条:通过委托与数据源协议进行对象间通信 94
第24条:将类的实现代码分散到便于管理的数个分类之中 101
第25条:总是为第三方类的分类名称加前缀 104
第26条:勿在分类中声明属性 106
第27条:使用“class-continuation分类”隐藏实现细节 108
第28条:通过协议提供匿名对象 114
第5章 内存管理 117
第29条:理解引用计数 117
第30条:以arc简化引用计数 122
第31条:在dealloc方法中只释放引用并解除监听 130
第32条:编写“异常安全代码”时留意内存管理问题 132
第33条:以弱引用避免保留环 134
第34条:以“自动释放池块”降低内存峰值 137
第35条:用“僵尸对象”调试内存管理问题 141
第36条:不要使用retaincount 146
第6章 块与大中枢派发 149
第37条:理解“块”这一概念 149
第38条:为常用的块类型创建typedef 154
第39条:用handler块降低代码分散程度 156
第40条:用块引用其所属对象时不要出现保留环 162
第41条:多用派发队列,少用同步锁 165
第42条:多用gcd,少用performselector系列方法 169
第43条:掌握gcd及操作队列的使用时机 173
第44条:通过dispatch group机制,根据系统资源状况来执行任务 175
第45条:使用dispatch_once来执行只需运行一次的线程安全代码 179
第46条:不要使用dispatch_get_current_queue 180
第7章 系统框架 185
第47条:熟悉系统框架 185
第48条:多用块枚举,少用for循环 187
第49条:对自定义其内存管理语义的collection使用无缝桥接 193
第50条:构建缓存时选用nscache而非nsdictionary 197
第51条:精简initialize与load的实现代码 200
第52条:别忘了nstimer会保留其目标对象 205
《Java Web程序设计》内容简介:本书以Web开发流程为主线,让读者了解真实的Web开发过程,体会规范化、标准化、专业化的软件开发流
《Shell脚本学习指南》将告诉你这些有关UNIX主流工具的知识。除此之外,《Shell脚本学习指南》还会帮助你解决UNIX命令与标准的差
WEB+DBPRESS是日本主流的计算机技术杂志,旨在帮助程序员更实时、深入地了解前沿技术,扩大视野,提升技能。内容侧重于Web开发的
批处理在提高WINDOWS管理效率中的神奇应用 本书特色 本书作者结合多年的理论与实践知识,针对于系统管理员和网络管理员精心策划了这本书。本书将dos命令与批处...
在刚过去的十年我们见证了共享Web和社会媒体的诞生,它们用各种富有创意的方式将人们联系在一起。目前,成千上万的用户忙着在线玩
《绘画的捷径》内容简介:本书共14章,前半部分内容主要包括为什么画、画什么、绘画基础、有效练习、人体造型等内容,使读者有一个
《数据库索引设计与优化》提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了
《阿长与《山海经》》内容简介:本书从鲁迅作品中精选了适合青少年读者阅读的篇目,题材上偏向于作者年少的成长故事,对亲人、朋友
《商业摄影核心课》内容简介:这是一本从基础入门技术出发,直指专业高度,揭示商业服装摄影专业技法的实用教材。本书从具体的拍摄
《深入理解Android:卷2》是“深入理解Android”系列的第2本,第1本书上市后获得广大读者高度评价,在Android开发者社群内口口相传
Ajax,orAsynchronousJavaScriptandXML,explodedontothesceneinthespringof2005andrema...
《现代电信百科》是一部电信专业普及读物。本书正文由基础知识篇、技术业务篇、经营管理篇和时尚未来篇等四部分组成,内容涵盖现
《无人零售:技术驱动商业变革》内容简介:本书分为上下两篇,上篇主要讲述了无人零售的三个核心问题:政策、技术、信息安全;下篇
《设计法则100》是一本关于如何做好设计的思想智能手册。什么是好的设计?怎样才能做好设计?设计师们在面对各种项目要求和挑战时
《嘻嘻哈哈陪娃图鉴·我们一起玩游戏》内容简介:本书写给家长们的陪娃手册,由北师大教育学博士李芳主编、针对3至6岁有宝宝的家庭
《日志管理与分析(第2版)》内容简介:本书基于主流日志管理与分析系统的设计理念,完善、透彻地对日志分析各流程模块的原理与实现
《Python图像处理经典实例》内容简介:本书提供了相关工具和算法,能帮助读者实现分析和可视化图像处理。本书给出了60余个具体实例
&ArcGIS开发宝典从入门到精通 内容简介 本书是为适应当前我国ArcGIS应用开发需要而编写的一本而向不同层次的开发指导教程。本书全面系统地介绍了ArcGI...
社会网络分析在社会和行为科学巾应用甚广,如经济学、市场营销以及工业工程。社会网络的视角主要关注于社会实体之间的关系。具体
《ExtJS学习指南》系统化地介绍了ExtJS的基础知识,从框架的下载安装到各种常用小部件的实例介绍,从如何自定义小部件到ExtJS代码