原文地址:https://www.jianshu.com/p/0eeb3885b2e1

iOS里有一个非常的好用切面编程的框架<Aspect>,功能我简要概括下,基于runtime 中的黑魔法实现,一共提供了两个AOP方法,可以对某一个类或者实例的方法进行拦截然后各种xxoo。

/// Adds a block of code before/instead/after the current `selector` for a specific class.
+ (id<AspectToken>)aspect_hookSelector:(SEL)selectorwithOptions:(AspectOptions)optionsusingBlock:(id)blockerror:(NSError **)error;/// Adds a block of code before/instead/after the current `selector` for a specific instance.
- (id<AspectToken>)aspect_hookSelector:(SEL)selectorwithOptions:(AspectOptions)optionsusingBlock:(id)blockerror:(NSError **)error;

然而在阅读他的源码从网上查阅资料时经常会遇到hook这个词,感觉挺有意思,百度翻译了一下是钩子的意思,当你如果还是一名学生的时候,word天呐,对说了这个词语的人真是崇拜至极,心里默念着牛逼,其实这是一名程序员应该懂的基本功.
其实钩子来源于英文词Hook,在windows系统中,一切皆消息,比如按了一下键盘,也是一个消息,Hook的意思是勾住,也就是在消息过去之前,可以先把消息勾住,不让其传递,你可以优先处理,也即这项技术就是提供了一个入口,能够针对不同的消息或者API在执行前,先执行你的操作,你的操作也称为「钩子函数」,所以,有的时候程序员在讨论的时候,也经常会说,可以先hook住,在处理,也即在执行某某操作之前,优先处理一下
好啦,这就是Hook的思想和原理,希望以后在和猿交流的过程中,听到这个词的时候,你能够自信的对程序员点点头,祝装逼成功哦~

程序猿口中的hook是什么意思?相关推荐

  1. JAVA程序猿面试题汇总

    (此话题将不断更新,请留意) 第一,谈谈final, finally, finalize的差别. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承.finally是异常 ...

  2. 记者“卧底”程序猿的故事

    记者?一般人都会觉得是个前景不错的职业,过去,是有威严得民心,为人们伸张正义的一个存在.如今,即便传统媒体不再似过去那样如日中天,但是有新媒体的崛起,找工作还用愁?可是殊不知当今的融媒体环境并未深入到 ...

  3. 中国35岁以上的程序猿哪去了?,基于android的app开发详细步骤

    举几个例子: A,女,前同事,90左右,985硕士,15年毕业,二线互联网公司,干了4年,19年,29岁跑路,高校行政岗事业编,月薪从25K到6K,5:30下班. B.男,读者,85左右,985硕士, ...

  4. 漫谈程序猿系列:看看你离优秀有多远

    前段时间(大概是8月份吧)我最终拿到了驾照,科目一.科目二.科目三.科目四都是一次性过的,没有给教练塞钱也没有给教练递烟.考科目三(路考)时,有个女生没能通过还被陪考员讽刺,伤心地哭了,梨花带雨让人心 ...

  5. 程序猿转型AI必须知道的几件事!

    摘要:作为我们这代人应该感到幸运,因为我们即将见证一个伟大的时代的到来.作为上个时代的弄潮儿--程序猿,我们有着得天独厚的机遇去创造着下一个时代.如何成功转型就变得至关重要,今天我们就来谈谈程序猿如何 ...

  6. 一个26岁程序猿的人生履历

    写这篇文章没有目的,只是觉得生活差了点什么.但是又害怕几年后的自己忘记了当初的自己······· 2020年 1月4号 周六,天气晴 3-5° 老规矩,先自我介绍 姓名:** 性别:男 年龄:26 职 ...

  7. 一个正在换工作的十年程序猿简历

    由于个人发展的原因,终选择依依不舍离开了工作了三年的公司.IT也是讲行业的,你过往的经历往往成为你新工作机会的铺设,记得自已是08年来的北京,想想那时真的很牛B,工作经验没有,技术上很一般,就会一个j ...

  8. 中国35岁以上的程序猿哪去了?

    关于这个问题,一个人说是没有用的,下面我整理了多位程序猿的回答,供大家一览 上班使我快乐 现在35岁,毕业就入行的互联网人,其实都是幸运的,赶上了房价和互联网的两重红利. 拼多多从成立到上市,不到3年 ...

  9. 程序猿,凭什么让你拿二十万

    近期面试了些程序猿求职者.有几位印象颇深.当然,是负面的印象.整体上就是没什么学历.能力.职业观,却狮子大开口.浮躁的非常. 央企也不是这么好糊弄的,对吧? A来自于四线城市的二本,去年毕业.简历上写 ...

最新文章

  1. Raphael属性学习--基本
  2. java alsa 编程_搭建JavaWeb开发环境
  3. javascript:面向对象的程序设计
  4. js获取request中的值_基于node.js的开发框架 — Koa
  5. 生成Ipa安装包的plist文件后生成下载链接
  6. 数学知识——博弈论(巴什博奕、尼姆博奕、威佐夫博奕)思路及例题
  7. 2020五一建模评测体验
  8. 关于注册keil的事儿,为啥注册成功之后keil还是提示会限制2K内存
  9. VMware Workstation 8.0 序列号
  10. 2021-2027全球与中国铂金芯片温度传感器市场现状及未来发展趋势
  11. 《鸡啄米C++编程入门系列》系列技术文章整理收藏
  12. 个人电脑秒变服务器 简单几步,你的电脑也可以成为服务器 (内网穿透)
  13. NVIDIA-TLT训练行人检测模型(一)----算法模型的训练(finetuning)
  14. ValueError: The list of inputs passed to the model is redundant. All inputs should only appear once.
  15. 名帖337 张旭 草书《古诗四帖》
  16. phpStudy激活码
  17. 女人如何搞副业?女人做什么副业好点?适合女性上班族的副业
  18. 如何制定客户留存策略_APP开发提升用户留存的7条策略
  19. python数据分析使用matplotlib绘图
  20. Ada语言的这二十年

热门文章

  1. 雪糕大军纷纷网红出道,“天价”背后是什么让消费者买单?
  2. ajaxPro使用例子
  3. 人事管理系统哪个好用?人事管理系统推荐!
  4. 谈VB.net里Optional关键字
  5. 咸鱼软件应用—ubuntu切换中文
  6. 3DMAX动画渲染 军舰在海中航行
  7. jdk环境变量配置成功只需三步
  8. 【Node.js】第一章 初识Node.js
  9. 那些年,我们一起做过的 Java 课后练习题(26 - 30)
  10. expected a type specifier