自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 iOS关联对象源码解析

前言 关联对象(AssociatedObject)是一种运用runtime在分类中添加"属性"的方法。那么关联是怎样实现添加"属性"的呢? 关联对象的实现步骤 关联对象的实现步骤如下: 在分类中.h中声明一个属性 在.m中声明该属性为动态加载 @dynamic 实现setter和getter方法 1. @interface UIViewController (Test) @pro...

2019-05-29 17:53:43 282

原创 iOS category 源码解析

前言: iOS的分类(Category)是做iOS开发常用的一种模式,它可以让我们在不知道原有类内部结构的情况下添加属性,方法。合理的运用分类可以将代码很好的进行解耦,让代码更加清晰明了。 那么分类是如何做到的动态添加属性和方法的呢?要是在分类里面添加了和原类同名方法会发生什么呢? 1.Category简介 category是Object-C 2.0之后添加的语言特性,category的主...

2019-05-29 17:53:02 271

原创 iOS block源码解析

什么是block block是什么?虽然所有的iOS开发都会使用到这个对象,但实际上要完全搞清楚block也是不容易的。 首先下个定义,实际上block是包含函数指针及上下文调用的对象。后面,我们再慢慢看下block内部究竟是怎样进行函数调用和上下文的处理。 block实质 举个

2019-05-29 17:52:20 134

原创 iOS 消息转发

前言 OC是个运行时语言,它的运行时主要靠runtime库。而一个对象调用一个方法的时候,实际上是向对象发送一个消息。那么,若是找不到对应的方法的话,会发生什么现象呢? 方法查询 从上一篇我们可以看到方法的查询是沿着supclass向源头查找的,而最后找不到的话才会进入消息转发流程。那么方法的查询是哪个函数呢? IMP lookUpImpOrForward(Class cls, SEL...

2019-05-29 17:51:22 134

原创 简单说明iOS事件传递和响应

前言: 我们点击屏幕的时候发生了什么?系统又是怎么找到对应的响应对象来响应的? 1.事件 当我们点击屏幕的时候,会产生一个事件。其实就是UIEvent对象。 @property(nonatomic,readonly) UIEventType type;//类型 @property(nonatomic,readonly) UIEventSubtype subtype; @prop...

2019-05-29 17:50:40 171

原创 [self class]和[super class]带来的思考

前言 class是很多人经常使用的方法,而【self class】和【super class】的区别也在面试中经常使用到。如下所述: #import "Person.h" @interface Man : Person @end #import "Man.h" @implementation Man - (instancetype)init { self = [super...

2019-05-29 17:50:01 2023

空空如也

空空如也

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

TA关注的人

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