美文网首页
iOS 上hash的内容

iOS 上hash的内容

作者: helinyu | 来源:发表于2022-02-22 09:55 被阅读0次

    1、关联属性的实现

    AssocationHashMap 和 objectAssocationMap 都是哈希表。
    以前:AssociationsHashMap 是基于
    class AssociationsHashMap : public unordered_map

    1> AssociationsHashMap : DisguisedPtr(object) 为key, (key [绑定的key] +(值+ 策略)) 为value。
    2> ObjectAssociationMap: key [绑定的key] ,(值+ 策略)

    2、weak 的实现

    weak的目的: 对象销毁的时候, 自动置为nil, 减少访问野指针的风险。

    步骤:
    1> 对象dealloc的时候,从全局的hashMap中,根据一个唯一的对象key, 找到存储所有指向该对象的weak指针的数组
    2> 将数组中的所有元素都置为nil。

    3、KVO实现使用的基本数据结构

    key:@[被观察的对象数组]

    4、ios App 签名的原理

    一致性哈希算法 + 非对称加解密算法

    5、对象的引用计数存储的位置

    具体实现

    if 对象支持TaggedPointer {
        return 直接将对象的指针值作为引用计数返回
    } 
    else if 设备是64位环境 && Objective-C2.0 {
        return 对象isa指针的一部分空间(bits_extra_rc)
    }
    else {
        return hash表
    }
    

    6、Runloop与线程的存储关系

    (key:value) = (thread: runloop_obj)

    7、NSDictionary原理

    里面直接使用了hash算法

    参考

    有时间看一下unordered_map/map 和DenseMap 之间的区别 。 为什么iOS需要协议个新稠密map替换?

    相关文章

      网友评论

          本文标题:iOS 上hash的内容

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