OC底层底子:Runtime

手机软件开发 2024-9-12 21:19:43 40 0 来自 中国
一、Runtime


  • Objective-C是一门动态性比力强的编程语言,跟C、C++等语言有着很大的差异
  • Objective-C的动态性是由Runtime API来支持的
  • Runtime API提供的接口根本都是C语言的,源码由C\C++\汇编语言编写
二、isa详解


  • 要想学习Runtime,起主要相识它底层的一些常用数据布局,好比isa指针
  • 在arm64架构之前,isa就是一个普通的指针,存储着Class、Meta_Class对象的内存地点
  • 从arm64架构开始,对isa进行了优化,变成了一个共用体(union)布局,还使用位域来存储更多的信息
三、objc_msgSend实行流程


  • OC中的方法调用实在都是转换为objc_msgSend函数调用
  • objc_msgSend的实行流程可以分为3大阶段

    • 消息发送


    • 动态方法分析


    • 消息转发



四、@dynamic


  • 提示编译器不要自动天生setter和getter的实现,不要自动天生成员变量
五、super


  • [super class]
  • [super superclass]
注:口试题


  • 讲一下OC的消息机制
  • 消息转发机制流程
  • 什么是Runtime?平常项目中有用过吗
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 20:28, Processed in 0.168166 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表