美文网首页
runtime两个对应应用点让我们便于理解

runtime两个对应应用点让我们便于理解

作者: 师景福 | 来源:发表于2024-06-18 14:19 被阅读0次

1。给分类添加属性
某个SDK里对象添加属性,但是无法修改这个对象,这时候就可以用分类来实现
这里需要用到关联函数objc_setAssociatedObject和objc_getAssociatedObject等方法
比如我们写NSObject的类拓展(NSObject+xxx),应用到上面的方法;
2.交换方法
class_getInstanceMethod和method_exchangeImplementations
比如我们平常写UIViewController+xxx;
我们需要每个界面都需要判断添加的 我们可以进行viewDidLoad或者viewWillAppear的方法交换

对于上面第一个我们可以搜索项目中三方sdk中会有多个;
对于第二个我说一下:

例如我们在全局判断界面添加水印
Method fromMethod = class_getInstanceMethod([self class], @selector(viewDidLoad));
Method toMethod = class_getInstanceMethod([self class], @selector(xxxViewDidLoad));
if (!class_addMethod([self class], @selector(xxxViewDidLoad), method_getImplementation(toMethod), method_getTypeEncoding(toMethod))) {
method_exchangeImplementations(fromMethod, toMethod);
}
在xxxViewDidLoad添加水印,或者更改viewWillAppear也行都是类似的;

上面我举的例子也可以写一个全局BaseViewcontroller,页面继承于baseVC;在baseVC里面判断,注意必须全局原生写,如果app中包含uniapp等就需要UIViewController 的拓展进行设定。

相关文章

  • iOS底层原理总结 - 探寻Runtime本质(一)

    isa的本质 在学习Runtime之前首先需要对isa的本质有一定的了解,这样之后学习Runtime会更便于理解。...

  • iOS底层原理总结 - 探寻Runtime本质(一)

    isa的本质 在学习Runtime之前首先需要对isa的本质有一定的了解,这样之后学习Runtime会更便于理解。...

  • Learn Runtime

    Runtime 参考资料: RunTime应用实例--关于埋点的思考 使用Runtime进行埋点操作-Demo...

  • objc_msgSend 流程

    1.runtime简介 Runtime分为两个版本,legacy和modern,分别对应Objective-C 1...

  • Runtime的应用

    Runtime的应用 Runtime的应用

  • 自己实现OC的KVO

    Runtime系列文章在这:Runtime介绍---术语介绍Runtime应用--动态添加方法Runtime应用-...

  • RunTime的应用和理解

    runtime的理解和应用 项目中经常会有一些的功能模块用到runtime,最近也在学习它.对于要不要阅读runt...

  • iOS --runtime理解与应用

    1.什么是Runtime? 我所理解的runtime是一个使用C编写的库,为C添加了面向对象的特性,它是一个库(R...

  • Runtime 的理解和应用

    一,怎么理解oc是动态语言,Runtime 又是什么? 静态语言: 如c语言,编译阶段就要决定调用那个函数,如果函...

  • iOS之Runtime(一)

    一:@@@《基础篇》@@@ 二:@@@《应用篇》@@@ 目录: 一、理解OC是动态语言,Runtime又是什么?二...

网友评论

      本文标题:runtime两个对应应用点让我们便于理解

      本文链接:https://www.haomeiwen.com/subject/vecxcjtx.html