《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
《乡村振兴与非遗保护:文化遗产传承人的日常实践研究》内容简介:本书通过民俗学、人类学的田野调查和理论分析,以“皮影戏传承人
《计算机科学概论(Python版)》内容简介:本书是美国哈维玛德学院“计算机科学通识”课程的配套教材,用独特的方法介绍计算机科学
黑川雅之是世界著名的建筑与工业设计师,被誉为开创日本建筑和工业设计新时代的代表性人物。他成功地将东西方审美理念融为一体,
即学即用-Excel 2010人力资源管理实战应用宝典-含1CD价格 本书特色 从事人力资源管理工作的你,是否厌倦了枯燥的数据统计、简单重复的报表核算,想要游刃...
《辉瑞:为世界健康护航》内容简介:重现辉瑞160多年的发展历程与管理特点,揭秘全球最大研发型制药公司百年成功之道:高技术产品+
SandeepKumarPatel是一位高级web工程师,技术博客www.tutorialsavvy.com的创始人,该博客自2012年创建以来一直被广泛阅读。...
《背包为家》内容简介:本书是儿童文学著名作家张国龙新近创作的一本随笔美文集,共分为背包回家、遥想他乡、天涯情旅三卷,其中所
《中国财政分权、地方政府行为与经济增长》内容简介:本书是国家社科基金重点项目的研究成果,入选“国家哲学社会科学成果文库”。
“如果你想学习如何用一款统计专家和数据挖掘专家所开发的免费软件包,那就选这本书吧。本书包括大量实际案例,它们充分体现了R软
《唯一的规则》内容简介:这本书,是李零阅读经典四部书(《论语》《老子》《孙子》《周易》)的第三本。对《孙子兵法》一书,不易
计算机审计情景案例 内容简介 计算机审计在我国正处于探索和发展的过程中,审计实践中会遇到各种各样的问题。本书选编了50个计算机审计的典型案例。从数据审计到信息系...
《学习书法的十三个问题》内容简介:本书是近现代著名书法家启功先生对书法学习中常见问题的专题讲解,包括:迷信由于误解、字形结
《思维导图:古诗词满分学习法》内容简介:背诵古诗词是中学生的一大难题,很多学生都是背了忘,忘了又背,鉴于此作者想到了让古诗
《疯狂XML讲义》主要以XML为核心,深入地介绍了XML的各种相关知识。《疯狂XML讲义》作为疯狂Java体系图书之一,依然保持该体系图
本书是目前市面上少见的实战类Bootstrap图书,全书通过5个真实、具体、鲜活,又有代表性的项目实例,讲解了Bootstrap的各种特性和
《洛阳史话》内容简介:洛阳从夏至宋三千年间,作为千年帝都,曾经演绎出一幕幕辉煌壮丽的历史画卷。北宋伊始,随着政治中心东移,
《极简父母法则:教出快乐、自信、独立的孩子》内容简介:爱默生曾经说过,我们为孩子的美丽和幸福感到极大的欢乐,这欢乐使我们的
本书系统地介绍了近年来国内外人机界面的最新发展与成果,全书共分6部分,14章。第1部分为概述,介绍了人机界面的定义、起源、发
《移动Web手册(双色)》主要讲解了移动Web开发和传统PC网站开发的不同之处。作者首先对移动互联网相关的运营商、设备、操作系统
为进一步深入贯彻实施《中华人民共和国行政诉讼法》,最高人民法院发布了《关于行政诉讼证据若干问题的规定》。本书即是对《行政