笔记 《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法 》
阅读此书的笔记点;
此书目录即是对知识点最好的总结
第1章 熟悉Objective-C
----------------------------------------------
第1条:了解Objective-C语言的起源
第2条:在类的头文件中尽量少引入其他头文件
第3条:多用字面量语法,少用与之等价的方法
第4条:多用类型常量,少用#define预处理指令
第5条:用枚举表示状态、选项、状态码
第2章 对象、消息、运行期
----------------------------------------------
第6条:理解"属性"这一概念
第7条:在对象内部尽量直接访问实例变量
第8条:理解"对象等同性"这一概念
第9条:以"类族模式"隐藏实现细节
第10条:在既有类中使用关联对象存放自定义数据
第11条:理解objc_msgSend的作用
第12条:理解消息转发机制
第13条:用"方法调配技术"调试"黑盒方法"
第14条:理解"类对象"的用意
第3章 接口与API设计
----------------------------------------------
第15条:用前缀避免命名空间冲突
第16条:提供"全能初始化方法"
第17条:实现description方法
第18条:尽量使用不可变对象
第19条:使用清晰而协调的命名方式
第20条:为私有方法名加前缀
第21条:理解Objective-C错误模型
第22条:理解NSCopying协议
第4章 协议与分类
----------------------------------------------
第23条:通过委托与数据源协议进行对象间通信
第24条:将类的实现代码分散到便于管理的数个分类之中
第25条:总是为第三方类的分类名称加前缀
第26条:勿在分类中声明属性
第27条:使用"class-continuation分类"隐藏实现细节
第28条:通过协议提供匿名对象
第5章 内存管理
----------------------------------------------
第29条:理解引用计数
第30条:以ARC简化引用计数
第31条:在dealloc方法中只释放引用并解除监听
第32条:编写"异常安全代码"时留意内存管理问题
第33条:以弱引用避免保留环
第34条:以"自动释放池块"降低内存峰值
第35条:用"僵尸对象"调试内存管理问题
第36条:不要使用retainCount
第6章 块与大中枢派发
----------------------------------------------
第37条:理解"块"这一概念
第38条:为常用的块类型创建typedef
第39条:用handler块降低代码分散程度
第40条:用块引用其所属对象时不要出现保留环
第41条:多用派发队列,少用同步锁
第42条:多用GCD,少用performSelector系列方法
第43条:掌握GCD及操作队列的使用时机
第44条:通过Dispatch Group机制,根据系统资源状况来执行任务
第45条:使用dispatch_once来执行只需运行一次的线程安全代码
第46条:不要使用dispatch_get_current_queue
第7章 系统框架
----------------------------------------------
第47条:熟悉系统框架
第48条:多用块枚举,少用for循环
第49条:对自定义其内存管理语义的collection使用无缝桥接
第50条:构建缓存时选用NSCache而非NSDictionary
第51条:精简initialize与load的实现代码
第52条:别忘了NSTimer会保留其目标对象
笔记 《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法 》的更多相关文章
- HTML+CSS笔记 CSS笔记集合
HTML+CSS笔记 表格,超链接,图片,表单 涉及内容:表格,超链接,图片,表单 HTML+CSS笔记 CSS入门 涉及内容:简介,优势,语法说明,代码注释,CSS样式位置,不同样式优先级,选择器, ...
- CSS笔记--选择器
CSS笔记--选择器 mate的使用 <meta charset="UTF-8"> <title>Document</title> <me ...
- HTML+CSS笔记 CSS中级 一些小技巧
水平居中 行内元素的水平居中 </a></li> <li><a href="#">2</a></li> &l ...
- HTML+CSS笔记 CSS中级 颜色&长度值
颜色值 在网页中的颜色设置是非常重要,有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命令颜色 语法: p{co ...
- HTML+CSS笔记 CSS中级 缩写入门
盒子模型代码简写 回忆盒模型时外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左. 语法: margin:10px 15p ...
- HTML+CSS笔记 CSS进阶再续
CSS的布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上, ...
- HTML+CSS笔记 CSS进阶续集
元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1&g ...
- HTML+CSS笔记 CSS进阶
文字排版 字体 我们可以使用css样式为网页中的文字设置字体.字号.颜色等样式属性. 语法: body{font-family:"宋体";} 这里注意不要设置不常用的字体,因为如果 ...
- HTML+CSS笔记 CSS入门续集
继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代(标签). 语法: p{color:red;} <p> ...
- HTML+CSS笔记 CSS入门
简介: </span>年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的<span>脚本解释程序</span>,作为ABC语言的一种继承. & ...
随机推荐
- SQL 中ROLLUP 用法
SQL 中ROLLUP 用法 ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集. 下面是 CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的所有 ...
- jquery easyui datagrid使用参考
jquery easyui datagrid使用参考 创建datagrid 在页面上添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid.代码如下: 页面上 ...
- CXF集成spring做webservice接口
一 . cxf 的jar包 1.cxf-2.3.3.jar 2.wsdl4j-1.6.2.jar 3.wss4j-1.5.11.jar 4.wstx-asl-3.2.0.jar 5.XmlSchema ...
- 查看centos是多少位的系统命令
打开命令行 运行下面命令 uname -i 如果是64位系统会显示x86_64 如果显示的是i386则是系统是32位
- java 7-nio异步I/O-将来式和回调式
java7中三个异步通道 1.AsynchronousFileChannle:用于文件I/O 2.AsynchronousSockeChannle:用于套接字I/O,支持连接超时 3.Asynchro ...
- (7)redis pipeline
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常 会阻塞并等待redi ...
- Java获取某月天数
Java获取某月天数 Calendar cal = new GregorianCalendar(); //或者用Calendar cal = Calendar.getIns ...
- Java之美[从菜鸟到高手演练]之JDK动态代理的实现及原理
Java之美[从菜鸟到高手演练]之JDK动态代理的实现及原理 JDK动态代理的实现及原理 作者:二青 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfg ...
- Linux下指定版本编译安装LAMP
说明: 操作系统:CentOS 6.5 64位 需求: 编译安装LAMP运行环境 各软件版本如下: MySQL:mysql-5.1.73 Apache:httpd-2.2.31 PHP:php-5.2 ...
- HDU 4441 Queue Sequence(splay)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4441 题意:一个数列,三种操作:(1)插入:找到没在当前数列中的最小的正整数i,将其插在位置p之后,并 ...