NSArray 底层实现

  • NSMutableArray 是一个类簇 - 具体实现实际上是其子类 __NSArrayM
    通过hooper
@interface __NSArrayM : NSMutableArray
{
    unsigned long long _used;
    unsigned long long _doHardRetain:1;
    unsigned long long _doWeakAccess:1;
    unsigned long long _size:62;
    unsigned long long _hasObjects:1;
    unsigned long long _hasStrongReferences:1;
    unsigned long long _offset:62;
    unsigned long long _mutations;
    id *_list;
}
  • __NSArrayM 使用了环形缓冲区(Circular buffer). 这个数据结构相当简单, 只是比常规数组和缓冲区复杂点. 环形缓冲区的内容能在到达任意一端时绕向另一端.
    环形缓冲区在任意一端插入或删除均不会要求移动任何内存(除非缓冲区满了)

  • __NSArrayM 特性

http://blog.joyingx.me/2015/05/03/NSMutableArray%20%E5%8E%9F%E7%90%86%E6%8F%AD%E9%9C%B2/

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

推荐阅读更多精彩内容