我是靠谱客的博主 标致裙子,最近开发中收集的这篇文章主要介绍iOS之深入解析数组遍历的底层原理和性能分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、OC 数组的类体系

  • 当我们创建一个 NSArray 对象时,实际上得到的是 NSArray 的子类 __NSArrayI 对象。同样的,创建 NSMutableArray 对象,得到的同样是其子类 __NSArray 对象。
  • 有趣的是,当我们创建只有一个对象的 NSArray 时,得到的是__NSSingleObjectArrayI 类对象。
  • __NSArrayI 和 __NSArrayM,__NSSingleObjectArrayI 为框架隐藏的类。
  • OC 数组的类体系如下:

在这里插入图片描述

  • 通过 NSArray 和 NSMutableArray 接口,返回的却是子类对象,这是怎么回事呢?
    • NSArray 重写了+ (id)allocWithZone:(struct _NSZone *)zone方法,在方法内部,如果调用类为 NSArray 则直接返回全局变量 ___immutablePlaceholderArray,如果调用类为 NSMUtableArray 则直接返回全局变量 ___mutablePlaceholderArray。
      也就是调用 [NSArray alloc] 或者 [NSMUtableArray alloc] 得到的仅仅是两个占位指针,类型为__NSPlaceholderArray。
    • <

最后

以上就是标致裙子为你收集整理的iOS之深入解析数组遍历的底层原理和性能分析的全部内容,希望文章能够帮你解决iOS之深入解析数组遍历的底层原理和性能分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部