首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

ios开发Runtime详解part3(Method swizzling)

在 ios开发 Runtime 详解part1和 ios开发 Runtime 详解part2(动态方法解析)中我大致介绍了runtime的基本功能,在这篇文章里,重点介绍一下runtime的一个重要的功能---method swizzling。   说到method swizzling,不得不介绍一下AOP(Aspect Oriented Programming),即面向切面编程。 AOP在java开发中因为有着一个牛逼的框架spring的存在使得AOP能够得以发扬光大,那么在ios开发中,AOP有哪些作用呢?下面我来大致列举一下: 1、记录日志,这也是用的最多的一种。 2、事务管理,如数据库的提交。 3、处理缓存。 4、安全检查,如权限管理。   由于汉字的博大精深,切面两个字已经将这一思想做了很好的诠释,但是如果没有深入的体会还是很难理解的。我们知道,OOP(面向对象)是把一切操作都针对对象进行操作,而面向切面则是对切面进行的操作,也就是对业务的某一个层面进行的操作。   好比我们要对所有的网络请求做一个日志功能,大家首先想到的办法肯定是在网络请求的代码里面加上日志请求的代码,但是假设这个网络请求的代码是被封装起来的,我们没有办法去改变这个请求的源代码,这时候就可以用method swizzling来用我们自定义的方法来替换原有的网络请求的方法,在里面加上日志请求的代码,同时也能够执行网络请求代码。也就是在既有的业务层面中插入新的切面,来处理通用的功能。

02
领券