原文地址 method swizzling 方法交换是OC运行时特征之一,通过方法交换可以hook方法,在实现一些需求时可以达到事半功倍的效果,但使用不慎同样可能导致难以想象的后果。在使用method swizzling…
标签:runtime
runtime 入门与简介
方法调用 objc_msgSend 调用方法(函数)是语言经常使用的功能,在 Objective-C 中专业一点的叫法是 传递消息(pass a message)。Objective-C 的方法调用都是 动态绑定 ,而C…
hook实例函数与类函数的不同点。
一、hook实例函数 这个是我们比较常见的,执行之后,test1函数就指向hooktest1了 Class originalClass = objc_getClass("ViewControllerA"); SEL or…
从 NSObject 的初始化了解 isa
关注仓库,及时获得更新:iOS-Source-Code-AnalyzeFollow: Draveness · Github 因为 ObjC 的 runtime 只能在 Mac OS 下才能编译,所以文章中的代码都是在 M…
Objective-C Runtime 之动态方法解析实践
作为一种动态编程语言,Objective-C 拥有一个运行时系统来支持动态创建类,添加方法、进行消息传递和转发。利用 Objective-C 的 Runtime 可以实现一些很棒的功能。本篇文章会简单介绍一下消动态方法解…
JSPatch 实现原理详解(一)
JSPatch以小巧的体积做到了让JS调用/替换任意OC方法,让iOS APP具备热更新的能力,在实现 JSPatch 过程中遇到过很多困难也踩过很多坑,有些还是挺值得分享的。本篇文章从基础原理、方法调用和方法替换三块内…
Runtime详解——iOS开发中的黑魔法
简介 Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的。比如: [receiver message]; // 底层运行时会被编译…
hook实例函数与类函数的不同点。
一、hook实例函数 这个是我们比较常见的,执行之后,test1函数就指向hooktest1了 Class originalClass = objc_getClass("ViewControllerA"); SEL or…
死磕Objective-C runtime运行时之一
说到Objc运行时,如果你还不清楚,那可要看仔细了,如果你是靠颜值而不是才华能够顺利通过面试,喵了个咪的,我也想去试试 Objc运行时2.0 iOS出现时就是运行时2.0版本了,和旧的相比拥有两大特性:第一,就是修改,增…
从 NSObject 的初始化了解 isa
关注仓库,及时获得更新:iOS-Source-Code-AnalyzeFollow: Draveness · Github 因为 ObjC 的 runtime 只能在 Mac OS 下才能编译,所以文章中的代码都是在 M…
Objective-C Runtime 之动态方法解析实践
作为一种动态编程语言,Objective-C 拥有一个运行时系统来支持动态创建类,添加方法、进行消息传递和转发。利用 Objective-C 的 Runtime 可以实现一些很棒的功能。本篇文章会简单介绍一下消动态方法解…
iOS实现依赖注入
依赖注入(Dependency Injection)这个词,源于java,但在Cocoa框架中也是十分常见的。举例来说:UIView的初始化方法initWithFrame - (id)initWithFrame:(CGR…