《编写高质量iOS与OS X代码的52个有效方法》书籍目录
一、熟悉Objective-C
1、了解Objective-C语言的起源
2、在类的头文件中尽量少引入其他头文件
3、多用字面量语法,少用与之等价的方法
4、多用类型常量,少用#define预处理指令
5、用枚举值表示状态、选项、状态码
二、对象、消息、运行期
6、理解“属性”这一概念
7、在对象内部尽量直接访问实例变量
8、理解“对象等同性”这一概念
9、以“类族模式”隐藏实现细节
10、在既有类中使用关联对象存放自定义数据
11、理解objc_msgSend的作用
12、理解消息转发机制
13、用“方法调配技术”调试“黑盒方法”
14、理解“类对象”的用意
三、接口与API设计
15、用前缀避免命名空间冲突
16、提供“全能初始化方法”
17、实现description方法
18、尽量使用不可变对象
19、使用清晰而协调的命名方式
20、为私有方法名加前缀
21、理解Objective-C错误模型
22、理解NSCopying协议
四、协议与分类
23、通过委托与数据源协议进行对象间通信
24、将类的实现代码分散到便于管理的数个分类之中
25、总是为第三方类的分类名称加前缀
26、勿在分类中声明属性
27、使用“class-continuation”分类隐藏实现细节
28、通过协议提供匿名对象
五、内存管理
29、理解引用计数
30、以ARC简化引用计数
31、在dealloc方法中只释放引用并解除监听
32、编写“异常安全代码”时留意内存管理问题
33、以弱引用避免保留环
34、以“自动释放池块”降低内存峰值
35、用“僵尸对象”调试内存管理问题
36、不要使用retainCount
六、块与大中枢派发
37、理解“块”这一概念
38、为常用的块类型创建typedef
39、用handler块降低代码分散程度
40、用块引用其所属对象时不要出现保留环
41、多用派发队列,少用同步锁
42、多用GCD,少用performSelector系统方法
43、掌握GCD及操作队列的使用时机
44、通过Dispatch Group机制,根据系统资源状况来执行任务
45、使用dispatch_once来执行只需运行一次的线程安全代码
46、不要使用dispatch_get_current_queue
七、系统框架
47、熟悉系统框架
48、多用块枚举,少用for循环
49、对自定义其内存管理语义的collection使用无缝桥接
50、构建缓存时选用NSCache而非NSDictionary
51、精简initialize与load的实现代码
52、别忘了NSTimer会保留其目标对象
《编写高质量iOS与OS X代码的52个有效方法》书籍目录的更多相关文章
- 《iOS开发实战 从入门到上架App Store(第2版)》书籍目录
第1章 开发准备 1.1 iOS 10新特性简述 1.1.1 新增触觉反馈编程接口 1.1.2 SiriKit框架的开放 1.1.3 引入Messages App 1.1.4 通知框架的整合与扩展 1 ...
- 【转】 iOS开发之打包上传到App Store——(一)各种证书的理解
OK,有日子没写iOS开发的相关文章啦,主要是最近的精力都没在这上面,不过既然产品已经快要出来了,就有必要了解一下各种证书啥的(众所周知iOS的一堆证书可是很让人头大呀),最近确实被这个搞得头大,然后 ...
- iOS开发从申请账号到上线APP Store步骤
1.developer.apple.com 申请开发者账号 2.根据API Cloud创建证书: http://docs.apicloud.com/Dev-Guide/iOS-License-Appl ...
- iOS开发 点击跳转到App Store 或者 点击按钮去评价
//跳转到应用页面 NSString *str = [NSString stringWithFormat:@"http://itunes.apple.com/us/app/id%d" ...
- iOS 开发之应用内弹出 App Store 应用界面
在APP内给其他APP做推广,经常用到在应用内弹出应用的APP #import <StoreKit/SKStoreProductViewController.h> 设置代理:<SKS ...
- 2018最新苹果APP上架App Store流程(超详细)
本文转发:https://blog.csdn.net/xxw888/article/details/73618837 2018最新整理iOS app上架app详细教程 上架iOS需要一个付费688的开 ...
- iOS开发-UI 从入门到精通(三)
iOS开发-UI 从入门到精通(三)是对 iOS开发-UI 从入门到精通(一)知识点的综合练习,搭建一个简单地登陆界面,增强实战经验,为以后做开发打下坚实的基础! ※在这里我们还要强调一下,开发环境和 ...
- iOS开发-UI 从入门到精通(二)
iOS开发-UI 从入门到精通(二)是对 iOS开发-UI 从入门到精通(一)知识点的巩固,主要以习题练习为主,增强实战经验,为以后做开发打下坚实的基础! ※开发环境和注意事项: 1.前期iOS-UI ...
- iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController) 前面我们介绍了StoryBoard这个新技术,和纯技术 ...
- iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)
iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController) 这里我们就直接上实例: 一:新建一个项目singleV ...
随机推荐
- Tiny-shell
Tiny-shell:一个模仿bash的极简shell (一) 概述 通过构建一个简单的shell,能够对shell的工作原理进行一些了解.主要有: 重定向 流水线 前台信号处理 进程组 后台进程 作 ...
- redis (一) --- 基本使用
概述 redis是基于key-value 我们所说的数据类型实际是 key-value 中的 value .文章主要介绍的是redis 几个重要的数据类型的使用. 简单使用 //keys patter ...
- Shiro入门学习之shi.ini实现认证及源码分析(二)
一.Shiro.ini文件 1.文件说明 ①ini(InitializationFile)初始文件:Window系统文件扩展名 ②Shiro使用时可以连接数据库,也可以不连接数据库(可以使用shiro ...
- 在HTML中实现两个div并排显示
在HTML中让两个div并排显示,通常情况下有三种实现方式,包括: (1)设置为行内样式,display:inline-block (2)设置float浮动 (3)设置position定位属性为abs ...
- powerbuilder连接oracle数据库
一.打开已经安装好的pb9.0,主界面菜单栏有个两个圆柱形就行数据库连接,点击database. 二.选择oracle版本,由于数据库版本是9i,可以使用084 oracle8/8i.右键--选择ne ...
- 棍子Sticks(poj_1011)[经典搜索]
[题意描述] George用相同的长度棍子,将他们随机切成最多64个单位的长度,现在,他想回到原来的状态,但他忘了他原来的多少根,以及他们原本是多长.请帮助他和设计一个程序,计算最小的可能的原始长度. ...
- linux的数据盘挂载
图文教程: Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作. 一:登陆 用Linux 的SSH 登陆软件(xshell 或者putty) 登陆阿里云主机服务器. 二 ...
- tkinter学习(3)scale尺度条和menu菜单
1.scale学习(尺度条)1.1 代码: #第1步:导出模块 import tkinter as tk #第2步:定义窗口,及其标题.大小和位置 win = tk.Tk() win.title('s ...
- IO课堂测试
一,用户需求 英语的26 个字母的频率在一本小说中是如何分布的?某类型文章中常出现的单词是什么?某作家最常用的词汇是什么?<哈利波特与魔法石> 中最常用的短语是什么,等等. (1)要求1: ...
- System.getProperty() 获取系统变量
例:获取用户当前的工作目录 String CONFPREFIXURL = System.getProperty("user.dir"); System.out.println(CO ...