《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从入门到精通-(第2版)-(附1DVD) 本书特色 《Java Web从入门到精通(第2版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实...
《高绩效HR必备图表范例》内容简介:当今人力资源管理领域面临诸多新问题、新环境、新理念、新技术,各种名类繁杂的图书也大量涌现
《openGauss数据库核心技术》内容简介:本书系统论述了openGauss数据库理论、技术及应用。本书共11章,首先介绍数据库发展历史,包
和谐家园保障性住房精选户型CAD图集 内容简介 本书依据国家的相关政策和规定,从特赖建筑网征集的住宅户型作品中精选而来。采用cad图集的形式,分为廉租房户型、经...
Theultimateguidetothecellphone,theubiquitousandindispensablepocket-sizedgadgetth...
《唐诗选注》内容简介:《唐诗选注》共收唐诗二百八十首,凡七十八家。按照诗史的轨迹与诗人的特色挑选具代表性的作品,进行注释和
本书是RogerL.Peterson等人合著的经典著作。本书自成体系,内容连贯,由浅入深详细介绍了扩频通信的基本概念、原理和分析方法。内
《公路上的美丽心灵》内容简介:《公路上的美丽心灵》是中国第一本以卡车司机群体为主体创作的文学作品集。中国有3000万卡车司机,
《新手易学:中文版Photoshop CS5图像处理》内容简介:《新手易学:中文版Photoshop CS5图像处理》是为帮助Photoshop初级用户掌握Ph
《PaaS实现与运维管理》内容简介:《PaaS实现与运维管理:基于Mesos +Docker+ELK的实战指南》主要阐述了云计算中PaaS平台的实现与运
《JavaScript入门经典(第4版)》对上一版本做了。全面更新,使JavaScript代码适用于最新版本的IE、Firefox和Safari浏览器。Java...
《数据之美》内容简介:这是一本教我们如何制作完美可视化图表,挖掘大数据背后意义的书。作者认为,可视化是一种媒介,向我们揭示
《深度学习》内容简介:本书较为全面地介绍了深度学习的基本概念、算法原理以及实现框架。全书共9章,分别介绍了深度学习的发展历史
《谁主沉浮》内容简介:本书认为移动互联网是传统PC互联网的延伸,未来移动互联网的内涵还将继续扩大,将延伸到各种移动终端的载体
AutoCAD 2008中文版三维造型项目化案例式教程 内容简介 本书系统介绍了autocad 2008中文版三维造型的各种命令,结合实例深入浅出地讲解了三维造...
《心智社会》内容简介:人类思维是一个复杂的过程。“为什么人类下雨不想被淋湿,却愿意在卫生间沐浴”这种3岁小孩都知道的问题,计
本书是美国普渡大学资深教授DouglasE.Comer从计算机系统结构对编程影响的角度为计算机科学、技术、应用类学生精心编写的计算机系
《Storm 技术内幕与大数据实践》内容简介:本书内容主要围绕实时大数据系统的各个方面展开,从实时平台总体介绍到集群源码、运维监
《赛雷三分钟漫画三国演义4》内容简介:1000万人都在看的“超萌赛雷”,前后创作三年,精心绘制全彩漫画三国演义! 电影式全场景,
《家装设计速通指南·居室风格详解》内容简介:本书对现代风格、工业风格、简约风格、古典中式风格、现代中式风格、欧式风格、乡村