笔记 《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语言的一种继承. & ...
随机推荐
- uva 10090 Marbles
Problem F Marbles Input: standard input Output: standard output I have some (say, n) marbles (small ...
- (转)jquery对表单元素的取值和赋值
/*获得text的值*/ var textval =$("#text_id").attr("value"); //或者 var textval =$(" ...
- 解决点击状态栏时ScrollView自动滚动到初始位置失效办法
http://www.cocoachina.com/ios/20150807/12949.html 取消点击状态栏scrollView会自动滚动到初始位置的功能 _scrollView.scrolls ...
- SqlSever基础 order by之后再orderby,双重排序,对排序好的数据中再次进行排序
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- Socket重叠IO
1.为什么到现在才弄懂这个 不知道这个Socket重叠IO这种模型是不是socket IO完成端口的基础,不过我感觉,学习一下这个再去学习socket IO完成端口是比较有好处的. 这个Scoket重 ...
- [UVa1210]Sum of Consecutive Prime Numbers(前缀和,打表)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- Action的搭建及application、request、Session的运用 多种方法
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- XShell 安装与虚拟机连接
XShell:是liunx的远程管理工具 为啥要用这个工具呢?因为在古老的liunx字符命令下,是看不到中文的,要么使用liunx的图形化界面(支持中文),要么使用远程管理工具,是在windows中的 ...
- JDBC操作Oracle数据库
背景知识 含义:JDBC是一种java数据库连接技术,能实现java程序对各种数据库的访问.由一组使用java语言编写的类和接口组成,这些类和接口称为JDBC API,他们位于java.sql 以及j ...
- Codeforces Round #376 (Div. 2) F. Video Cards 数学,前缀和
F. Video Cards time limit per test 1 second memory limit per test 256 megabytes input standard input ...