当前位置: 首页 > wzjs >正文

东莞网站推广宣传wordpress放音乐播放器

东莞网站推广宣传,wordpress放音乐播放器,龙岩网站设计招聘信息,便宜的网站建设iOS高级开发工程师面试——RunTime 一、简介二、介绍下 RunTime 的内存模型(isa、对象、类、metaclass、结构体的存储信息等)对象类三、为什么要设计 metaclass ?四、class_copyIvarList & class_copyPropertyList区别?五、class_rw_t 和 class_ro_t 的区别?六、categ…

iOS高级开发工程师面试——RunTime

  • 一、简介
  • 二、介绍下 RunTime 的内存模型(isa、对象、类、metaclass、结构体的存储信息等)
    • 对象
  • 三、为什么要设计 metaclass ?
  • 四、class_copyIvarList & class_copyPropertyList区别?
  • 五、class_rw_t 和 class_ro_t 的区别?
  • 六、category如何被加载的?两个 category 的load方法的加载顺序?两个 category 的同名方法的加载顺序?
  • 七、category & extension区别?能给 NSObject 添加 Extension 吗?结果如何?
  • 八、 消息转发机制,消息转发机制和其他语言的消息机制优劣对比?
  • 九、在方法调用的时候,方法查询-> 动态解析-> 消息转发 之前做了什么 ?
  • 十、IMP、SEL、Method的区别和使用场景
  • 十一、load、initialize方法的区别什么?在继承关系中他们有什么区别?
  • 十二、说说消息转发机制的优劣?
  • 十二、iOS你在项目中用过 RunTime 吗?举个例子。
  • 十三、RunTime 是如何把 weak变量的自动置 nil 的?
  • 十四、objc中向一个 nil 对象发送消息将会发生什么?

一、简介

Objective-C 语言是一门动态语言。它把一些决策从编译阶段链接阶段推迟到运行时阶段,实现该机制的基础就是 runtime(又叫作运行时)。

Runtime 提供的接口基本都是 C 语言,源码由 C\C++\汇编语言编写。Runtime API 为 Objective-C 语言的动态属性提供支持,充当一种用于 Objective-C 语言的操作系统,使得该语言正常运转工作。

二、介绍下 RunTime 的内存模型(isa、对象、类、metaclass、结构体的存储信息等)

对象

OC中的对象指向的是一个objc_object指针类型,typedef struct objc_object *id;从它的结构体中可以看出,它包括一个isa指针,指向的是这个对象的类对象,一个对象实例就是通过这个isa找到它自己的Class,而这个Class中存储的就是这个实例的方法列表属性列表成员变量列表等相关信息的。

/// Represents an instance of a class.
struct objc_object {Class _Nonnull isa  OBJC_ISA_AVAILABILITY;
};

在OC中的类是用Class来表示的,实际上它指向的是一个objc_class的指针类型,typedef struct objc_class *Class;对应的结构体如下:

struct objc_class {Class _Nonnull isa  OBJC_ISA_AVAILABILITY;#if !__OBJC2__Class _Nullable super_class                              OBJC2_UNAVAILABLE;const char * _Nonnull name                               OBJC2_UNAVAILABLE;long version                                             OBJC2_UNAVAILABLE;long info                                                OBJC2_UNAVAILABLE;long instance_size                                       OBJC2_UNAVAILABLE;struct objc_ivar_list * _Nullable ivars                  OBJC2_UNAVAILABLE;struct objc_method_list * _Nullable * _Nullable methodLists                    OBJC2_UNAVAILABLE;struct objc_cache * _Nonnull cache                       OBJC2_UNAVAILABLE;struct objc_protocol_list * _Nullable protocols          OBJC2_UNAVAILABLE;#endif}

从结构体中定义的变量可知,OC的Class类型包括如下数据(即:元数据metadata):super_class(父类类对象)
name(类对象的名称)
version、info(版本和相关信息)
instance_size(实例内存大小);
ivars(实例变量列表)
methodLists(方法列表)
cache(缓存)
protocols(实现的协议列表);
当然也包括一个isa指针,这说明Class也是一个对象类型,所以我们称之为类对象,这里的isa指向的是元类对象(metaclass),元类中保存了创建类对象(Class)的类方法的全部信息。

以下图中可以清楚的了解到OC对象、类、元类之间的关系:
在这里插入图片描述
从图中可知:
对象的isa指针指向类对象的isa指针指向元类元类对象的isa指针指向根元类根元类的isa指针指向他本身,从而形成一个闭环。
元类(Meta Class):是一个类对象的类,即:Class的类,这里保存了类方法等相关信息。

我们再看一下类对象中存储的方法属性成员变量等信息的结构体:

  • objc_ivar_list
    存储了类的成员变量,可以通过object_getIvarclass_copyIvarList<

文章转载自:

http://g4BgAM9A.xfLwq.cn
http://gLO1myqW.xfLwq.cn
http://ltkLdJSS.xfLwq.cn
http://ntdlpw7r.xfLwq.cn
http://xiE2SgJW.xfLwq.cn
http://iiuultDz.xfLwq.cn
http://BXqnvmHH.xfLwq.cn
http://eQXq1vZD.xfLwq.cn
http://0dCBhhc6.xfLwq.cn
http://l8TZ7YBQ.xfLwq.cn
http://ZM360Qc7.xfLwq.cn
http://yNyjCRjc.xfLwq.cn
http://C6EyZdCV.xfLwq.cn
http://k5sS49MI.xfLwq.cn
http://BgMozOwV.xfLwq.cn
http://H9UeNHxD.xfLwq.cn
http://xuemjANV.xfLwq.cn
http://H06MNEn3.xfLwq.cn
http://UG24iqFG.xfLwq.cn
http://dm0HB5tt.xfLwq.cn
http://94GyniAa.xfLwq.cn
http://BpZZ7PLZ.xfLwq.cn
http://pB0GPTk5.xfLwq.cn
http://rhZb43Xu.xfLwq.cn
http://z9jr6xGs.xfLwq.cn
http://IfQQPigw.xfLwq.cn
http://wQWe5TW3.xfLwq.cn
http://xiWOvX1R.xfLwq.cn
http://TNulmZ6z.xfLwq.cn
http://NnuTu6yZ.xfLwq.cn
http://www.dtcms.com/wzjs/611643.html

相关文章:

  • 网上提供免费主页空间的网站旅游交友的网站建设
  • 把网站内容全删掉 在重新建立会不会被k西昌网站建设
  • 牡丹江seo网站推广蜘蛛屯优化排名教育培训网络推广培训
  • 网站开发的软 硬件环境标准cdn网站加速 免备案
  • 张家港网站设计优化在百度上做广告推广要多少钱
  • 深圳做网站 肖先生东莞网站建设 南城石佳
  • Django 个人博客网站开发wordpress弄个人博客好
  • 临沭有做网站的吗免费app制作软件下载
  • 重庆网站建设冒号商务网站建设摘要
  • 买了网站 怎么做呢昆山住房和城乡建设部网站
  • 外贸网站怎样做推广互联网公司薪酬体系
  • 网站服务器速度对seo有什么影响?wordpress movies themes
  • 网站服务器和空间有什么区别学校网站的建设与使用情况
  • 数据展示网站模板最好建网站系统的软件
  • 中国空间站研究项目工程建设是指
  • 深圳房产网优化大师网页版
  • 天河岗顶棠下上社网站建设邯郸网站建设服务平台
  • excel中批量做网站的超链接免费在线观看韩国电视剧网站推荐
  • 天津餐饮团购网站建设网站建设 环保素材
  • 怎么自己做彩票网站室内设计知名网站
  • 成都专业做网站的公司公司注册网上核名入口
  • 秦皇岛外贸网站建设哪家小吃培训网站做的最好
  • 携程官网seo优化报告
  • 厦门seo网络推广手机优化游戏性能的软件
  • 网站做淘客 还可以吗典型的口碑营销案例
  • 哪个平台可以随便发广告网站如何做标题优化
  • 网站建设价格对比单长沙优化网站关键词
  • 水土保持与生态建设网站怎么申请免费网站
  • 备案 网站建设计划书wordpress前台发布
  • 如何做网站卖连接注册建筑工程公司起名大全