<笔记>Effective Objective-C 2.0 编写高质量iOS与
1. 内存管理-引用计数
2. 非对象类型 int float double char
3.运行时--编译器(编译时)函数调用
4.@class 缩短编译时间,降低依赖,耦合
5.使用字面量而不是alloc init,字面量是 a)使代码简洁易懂的语法糖, b)如果插入了nil对象,使用字面量会崩溃,便于查错, c)可变对象:@[@1,@2] mutableCopy
6.使用static const代替#define define不含变量类型, const表示不允许被修改, 对于通知字符串,多处访问的变量,在头文件写extern
7.多使用枚举表示状态机,看名字容易懂
8. NS_ENum NS_options, optons使用位移左移右移 表示多个状态 https://www.jianshu.com/p/97e582fe89f3 1<<0 1<<2 1<<3
9. 使用switch判断枚举类型的时候不写 default why? 增加新类型的时候,会有报错提示, 提示程序员处理这种情况的case
第二章
1.atomic 原子属性,性能不好
<笔记>Effective Objective-C 2.0 编写高质量iOS与的更多相关文章
- iOS书摘之编写高质量iOS与OS X代码的52个有效方法
来自<Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法>一书的摘要总结 一.熟悉Objective-C 了解Objective-C语言的起源 ...
- 第一章 熟悉Objective -C 编写高质量iOS与OS X代码的52 个有效方法
第一章 熟悉Objective -C 编写高质量iOS与OS X代码的52 个有效方法 第一条: 了解Objective-C 语言的起源 关键区别在于 :使用消息结构的语言,其运行时所应执行 ...
- 笔记 《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法 》
阅读此书的笔记点: 此书目录即是对知识点最好的总结 第1章 熟悉Objective-C ---------------------------------------------- 第1条:了解Obj ...
- 【读书笔记】--《编写高质量iOS与OS X代码的52个有效方法》
1.Objective-C 起源: 在 C 语言基础上添加了面向对象特性,是 C 语言的超集.Objective-C 由 SmallTalk 语言演变过来,使用消息结构,运行环境由运行环境决定. OC ...
- 编写高质量iOS代码与OS X代码的effective 方法小结
一.熟悉OC: 了解OC的起源: OC和C++,Java等面向对象语言类似,不过有很方面差别.因为该语言使用 消息结构而非函数调用. 消息结构和函数调用的区别:前者是在其运行时所应执行的代码由运行环 ...
- 编写高质量iOS代码与OS X代码的effective方法(小结)
一.熟悉OC: 了解OC的起源: OC和C++,Java等面向对象语言类似,不过有很方面差别.因为该语言使用 消息结构而非函数调用. 消息结构和函数调用的区别:前者是在其运行时所应执行的代码由运行环 ...
- 编写高质量iOS代码的52个有效方法1-1
一.使用向前声明(@class)的好处 1.有效减少编译器编译的时间: 2.有效避免循环引用: 二.字面量语法的好处 1.字面常量 精简.可用于所有数据类型,如: NSNumber *intNumbe ...
- 编写高质量iOS与OS X代码的52个有效方法
第一章重点: 第一条:OC的起源 OC由smalltalk语言演化而来的语言为消息结构(messaging structure)语言,其运行时所因执行的的代码由运行环境来决定:函数调用(functio ...
- 《编写高质量iOS与OS X代码的52个有效方法》书籍目录
一.熟悉Objective-C 1.了解Objective-C语言的起源 2.在类的头文件中尽量少引入其他头文件 3.多用字面量语法,少用与之等价的方法 4.多用类型常量,少用#define预处理指令 ...
随机推荐
- 解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX
从网上抓了一些字节流,想打印出来结果发生了一下错误: UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position ...
- [Android]Android数据的四种存储方式
存储方式 Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/d ...
- AndroidStudio 代码(导入类)报错但可正常运行,以及解决此问题后带来的系列问题解决
首先是应用中很多导入的类都报红色异常显示找不到此类,但运行编译正常: 第一种方法: 点击AndroidStudio菜单File -> Invalidate Caches/Restar… ,在弹出 ...
- C++ 智能指针二
/* 智能指针shared_ptr注意点 */ #include <iostream> #include <string> #include <memory> // ...
- Windows server 2008 R2 多用户远程桌面
1. 创建三个本地管理员测试用户 user01 user02 user03并设置密码 2. 开启远程桌面连接 3.新建规则放行远程桌面端口3389 (或者关闭防火墙) 4.安装远程桌面服务 5 ...
- Ant与Proguard集中
示例: <taskdef resource="proguard/ant/task.properties" classpath="/usr/local ...
- PHP最全笔记(四)(值得收藏,不时翻看一下)
// 序列化(串行化) # 数据传输均是字符串类型 # 除了资源类型,均可序列化 # 序列化在存放数据时,存放数据本身,也存放数据类型 1.在网络传输数据时:2.为了将数组或对象放在磁盘时 # 序列化 ...
- Java中创建对象的五种方式
我们总是讨论没有对象就去new一个对象,创建对象的方式在我这里变成了根深蒂固的new方式创建,但是其实创建对象的方式还是有很多种的,不单单有new方式创建对象,还有使用反射机制创建对象,使用clone ...
- eclipse里将java工程改web工程
转自:http://blog.csdn.net/heirenheiren/article/details/8488245 把一个普通的eclipse项目转成web项目 1. 编辑工程的.projec ...
- [Bayes] Latent Gaussian Process Models
比较难理解,通过做题来入门. 目的:简单的了解下相关概念. 基础 热身 目的:找x到y的映射关系. 假设:Q latent functions {fi} fj 作为先验,跟x没什么直接关系,x只是作为 ...