2018-05-15

作者: iOS打怪升级 | 来源:发表于2018-05-29 01:17 被阅读13次
第二章:对象、消息、运行时
6. 理解属性的含义:是一种o-c的特性,用于封装数据
    1. 理解@synthesize 自动合成存取方法和下划线的实例变量
    1. 理解 @dynamic 不要自动合成存取方法和实例变量,需要手动创建,编译器不会检查,即使没有实现,但是运行期如果还没有,那么调用的时候就会崩溃了
    1. 理解属性特质:不同的特质会影响编译器生成的存取方法
 a. 原子性:atomic 和 nonatomic, 默认是原子的,会通过锁机制确保原子性,但是通常不采用原子性,因为在ios 开发中存在严重的性能问题,另外并不能 
    保证 “线程安全” 

 b. 读写权限:readwrite 和readonly  ; 前者就有存取(getter &setter)方法, 后者只有取(getter)方法,可以在类扩展中重写具有readonly 的属性.
 c. 内存管理语义:只会影响设置方法;assgin 、weak 、unsafe_unretained、strong、copy 
 d. 方法名:可以重新命名存取方法名:语法-> getter = <name> ;setter = <name> 
    例如:@property(nonatomic , getter = isOpen) BOOL open;

7. 在对象内部尽量直接访问实例变量
  • 建议访问的时候采用直接访问的形式,设置实例变量的时候采用属性来做,这样既能保证效率,又能监控写入操作。
    分析:直接访问实例变量的优缺点:
a. 由于不经过oc 的方法派发,所以直接访问实例变量的速度比较快
b. 内存管理语义就显示的多余了
c. 不会触发键值观察kvo通知
d. 通过属性来访问可以方便调试,监听访问时机

*另外要注意针对init 的问题,初始化的使用建议采用直接访问实例变量的方法,因为子类可能重写父类属性的设置方法,如果该场景下父类里面调用了子类方法,那么可能父类会直接调用子类方法,是的父类不能正常初始化了,这不是我们要的结果
*针对惰性初始化的实例,必须调用属性方法访问了,没啥可说的

8. 理解对象等同性:根据需要重新定义自己的等同性判定方法;NSObject 提供了下面的两个基本的方法:
- (BOOL) isEqual:(id)object;
- (NSUInterger)hash;
解释:如果两个对象的指针完全相同,那么两个对象相等;如果对象相等,那么hash 值也一定相等,但是hash 值相等,不能得出对象一定相等

在容器中放入可变对象的后,不应该在改变其hash 码,容器会把对象按照hash 码放入不同的箱子,如果真的要变,那么就要考虑其带来的其他隐患

编写等同性方法原则:

  • 不要盲目的去检查每条数据的属性,应该根据不同的需求来制定方案
  • 编写hash 方法的时候,应该采用计算速度快,碰撞几率低的算法

相关文章

  • 12306

    train.py 最后更新时间:2018-05-15 0:15:23

  • 随想——源于公园、校园、家园

    葱兰朵朵 2018-05-15 17:21 · 字数 1538 · 阅读 1 · 日记本 邀...

  • http理解(中)

    title: http 理解(中)date: 2018-05-15 14:53:22tags: http 确保We...

  • 2018-05-16

    日式 就这么装! 梵客家装青岛公司2018-05-15 日本和式建筑 又称“和样建筑”或...

  • Python递归优化

    博客文章迁移: 2018-05-15 11:17 在codewars上做题时遇到的坑(https://www.co...

  • 日精进打卡(第312天)

    2018-05-15 姓名:李义 公司:........ 组别:259期利他二组 【知~学习】 背诵 六项精进大纲...

  • 2018-05-15

    网海情缘 郝代弟 2018-05-15 17:23 · 字数 1408 · 阅读 0 · 日记本 冥冥之中有...

  • 享受豪华(转录)

    享受豪华(转录) 2018-05-15 10:43:19|分类: 博友芳香 享受豪华 王正方 (作者简介:王正方,...

  • 2018年的电影记录.中

    81. 2018-05-15「杀手乔」Killer Joe,豆瓣评分6.6:被推荐了这个,看完只觉得全片都好病态。...

  • 王霞感恩功课第162

    王霞感恩功课第162天 王霞王夏 2018-05-15 23:26 · 字数 6217 · 阅读 29 · 日记本...

网友评论

    本文标题:2018-05-15

    本文链接:https://www.haomeiwen.com/subject/zlludftx.html