自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IOSSHAN的博客

坚持原创

  • 博客(8)
  • 收藏
  • 关注

原创 优秀的iOS博客

收集一批优秀的iOS博客,不断更新招聘一个靠谱的 iOS百度大佬出的一些面试题唐巧的博客 做iOS的没几个不知道他的杨萧玉 哈工大毕业,腾讯大佬招聘一个靠谱的 iOS百度大佬出的一些面试题《招聘一个靠谱的iOS》面试题参考答案 有问就有答...

2020-05-25 15:18:07 544

原创 Runtime的本质(六)---常用的API

Runtime的一些常用APIRuntime API01 – 类动态创建一个类(参数:父类,类名,额外的内存空间)Class objc_allocateClassPair(Class superclass, const char *name, size_t extraBytes)注册一个类(要在类注册之前添加成员变量)void objc_registerClassPair(Class cls) 销毁一个类void objc_disposeClassPair(Class cls)获取is

2020-05-30 12:04:16 371

原创 Runtime的本质(五)

面试题:答案my name is <ViewController: 0x15f2026e0>首先,我们看下YZPerson *person = [[YZPerson alloc] init];[person print];两句代码在内存方面的存储状态:person指针 指向 YZPerson建立的实例对象。我们知道,[[YZPerson alloc] init]建立的实例对象,是一个结构体。结构体里面至少有一个指针,isa。还有一个成员变量_name。而且,isa是结构体

2020-05-28 10:05:24 298

原创 Runtime的本质(四)---[super class]、isKindOfClass、isMemberOfClass

来一道面试题:@interface YZPerson : NSObject@end@interface YZStudent : YZPerson@end@implementation YZStudent- (instancetype)init{ if (self = [super init]) { NSLog(@"[self class] = %@", [self class]); NSLog(@"[self superclass] = %@", [

2020-05-26 16:54:33 361

原创 Runtime的本质(三)----objc_msgSend

OC中的方法调用,其实都是转换为objc_msgSend函数的调用objc_msgSend的执行流程可以分为三大阶段:消息发送动态方法解析消息转发1.消息发送当空对象调用方法的时候,是怎么操作的?当调用方法的时候,执行的是objc_msgSend函数objc_msgSend(<#id _Nullable self#>, <#SEL _Nonnull op, ...#>)。第一个参数是消息接收者,第二个参数是方法名。我们在源码中找到objc_msgSend的具体实

2020-05-25 15:17:50 476 1

原创 Runtime的本质(二)---objc_class结构

这篇文章,我们主要来介绍一下objc_class结构的内容与含义。我们知道Class的类型是objc_class类型typedef struct objc_class *Class;点进去objc_class可以看到部分定义:objc_class继承objc_objectobjc_object的部分定义:简化可归结objc_class的结构为:可以看出,Class里面有isa、superclass指针,方法列表、属性列表、协议列表以及成员变量列表以及其他信息。其中,方法列表包含了自己的方法列表

2020-05-21 11:00:39 439 1

原创 Runtime的本质(一)---isa再学习

OC是一门动态性比较强的编程语言,跟C、C++等语言有着很大的不同OC的动态性是由Runtime API来支撑Runtime API提供的接口基本都是C语言的,源码由C\C++\汇编语言编写

2020-05-19 17:41:32 429

原创 Runtime的基本使用

runtime简称运行时。OC是运行时机制,也就是在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数。而对于OC语言中的函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。在编译阶段,C语言调用未实现的函数会报错。在编译阶段,OC可以调用任何函数,即使这个函数并未实现,...

2020-05-07 18:08:32 870

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除