熟悉OC(1-11)

第一条

OC语言由Smalltalk演化而来,Smalltalk语言是消息型鼻祖,消息结构和函数调用的区别如下:

//message structure

Object *obj = [Object new];

[obj preformWith:paramter1 and:paramter2];

//function calling

Object *obj = new Object;

obj->preform(paramter1,paramter2);

关键区别:消息结构运行时所执行的代码由运行环境来决定;而函数调用则由编译器决定。

第二条

在类的头文件中尽量少引入其他头文件

1.@class的使用(向前引用)

2.#import避免循环引入

3.减少代码的耦合度

第三条

多用字面量语法,少用与之等价的方法

1.代码简洁,可读性高

第四条

多用类型常量,少用#define预处理指令

第五条

用枚举表示状态、选项、状态码

1.按位或操作符定义枚举选项

2.typedef定义枚举类型

第六条

理解属性概念

1.属性为对象特性,记录对象数据的产物

2.属性特质,用于修饰属性特性,常见属性特质(atomicity,noatomic,readwrite等等)

3.getter 和 setter方法

第七条

对象内部尽量直接访问对象实例变量

1.不经由OC的“方法派发”(method dispatch)直接访问实例变量速度快

2.直接访问实例变量不会访问setter方法

3.不触发键值观察(KVO)

4.通过属性访问有助于错误排除

第八条

理解“对象等同性”

1.isEqual和hash方法

2.相同的对象具有相同的哈希吗,但是哈希码相同的对象却未必相同

3.hash时要慎重

第九条

以“类族模式”隐藏实现细节

1.类族模式可以实现细节隐藏

2.系统架构中经常使用

3.从类族的公开抽象基类中继承子类时要当心

第十条

在既有类中使用关联对象存放自定义数据

1.可以通过“关联对象”机制来把两个对象连接起来

2.定义关联对象时可指定内存管理语义,定义属性的特质

3.只有在其他做法不可行时才应选用关联对象,此种做法会引入难以查找的bug

第十一条

理解objc_msgSend的作用

1.消息由接受者、选择子及参数构成

2.发给某对象的全部消息都由“动态消息派发系统”来处理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,852评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,906评论 18 399
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,820评论 0 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,355评论 19 139
  • 要求、期望、负责是不是爱 我们衡量自己对一个人是否有爱或爱有多深,往往会看对他有没有要求、期望或负不负责,或那程度...
    大智行者阅读 2,548评论 0 1