编写高质量IOS代码(二)

1.属性

a.属性(property)是objective-C的一项特性,用于封装数据。
b.使用属性,编译器会自动合成(autosynthesis)访问方法和相应的实例变量(下划线开头的)
c.属性特质(原子性,读写权限,内存管理语义,方法名)

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

a.直接访问实例变量,不经过方法派发(method dispatch),不调用设置方法,不触发KVO,更快。
b.初始化和dealloc方法中,要使用实例变量来读写数据,因为设置方法有可能被子类覆写(override)
c.惰性初始化,要通过属性来访问

3对象的同等性

a.==只比较了指针本身(内存地址)
b.应该使用 isEqual: 方法来比较

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

a.类族模式可以把实现细节隐藏在一套简单的公共接口后面
b.系统框架经常使用类族(NSArray)

5.使用关联对象存放自定义数据

a.可以通过“关联对象”机制来把两个对象连起来
b.在非匿名分类中,扩展属性

6.理解objc_msgSend

其原型 void objc_msgSend(id self,SEL cmd,…)

7.消息转发机制

a.动态方法解析(resolveInstanceMethod)
b.备援接受者(forwardingTargetForSelector)实现多重继承,消息转发链
c.完整消息转发(forwardInvocation)

8.用“方法调配技术”调试 黑盒方法

9.理解“类对象”的用意

a.每个实例都有一个指向Class对象的指针,用以表示其类型,而这些class对象则构成了类的继承体系
b.用 类型信息查询方法 来确定对象类型,不要直接比较类的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值