IOS面试题编程机制 46-50

46. 阐述 Method Swizzle(黑魔法),什么情况下会使用?
1). 在没有一个类的实现源码的情况下,想改变其中一个方法的实现,除了继承它重写、和借助类别重名方法暴力抢先之外,还有更加灵活的方法 Method Swizzle。
2). Method Swizzle 指的是改变一个已存在的选择器对应的实现的过程。OC中方法的调用能够在运行时通过改变,通过改变类的调度表中选择器到最终函数间的映射关系。
3). 在OC中调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是selector的名字。利用OC的动态特性,可以实现在运行时偷换selector对应的方法实现。
4). 每个类都有一个方法列表,存放着selector的名字和方法实现的映射关系。IMP有点类似函数指针,指向具体的方法实现。
5). 我们可以利用 method_exchangeImplementations 来交换2个方法中的IMP。
6). 我们可以利用 class_replaceMethod 来修改类。
7). 我们可以利用 method_setImplementation 来直接设置某个方法的IMP。
8). 归根结底,都是偷换了selector的IMP。
47. 在手势对象基础类UIGestureRecognizer的常用子类手势类型中哪两个手势发生后,响应只会执行一次?
UITapGestureRecognize

相关推荐

  1. IOS面试编程机制 46-50

    2024-03-25 16:54:04       16 阅读
  2. IOS面试编程机制 41-45

    2024-03-25 16:54:04       19 阅读
  3. IOS面试编程机制 51-55

    2024-03-25 16:54:04       18 阅读
  4. IOS面试编程机制 36-40

    2024-03-25 16:54:04       19 阅读
  5. IOS面试编程机制 56-60

    2024-03-25 16:54:04       14 阅读
  6. IOS面试object-c 41-50

    2024-03-25 16:54:04       24 阅读
  7. IOS面试编程机制 6-10

    2024-03-25 16:54:04       17 阅读
  8. IOS面试编程机制 16-20

    2024-03-25 16:54:04       17 阅读
  9. IOS面试编程机制 11-15

    2024-03-25 16:54:04       17 阅读
  10. IOS面试编程机制 1-5

    2024-03-25 16:54:04       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-25 16:54:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-25 16:54:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-25 16:54:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-25 16:54:04       20 阅读

热门阅读

  1. SGD优化器和Adam区别

    2024-03-25 16:54:04       19 阅读
  2. 我的算法刷题笔记(3.18-3.22)

    2024-03-25 16:54:04       21 阅读
  3. 什么是微任务?什么是宏任务?

    2024-03-25 16:54:04       19 阅读
  4. IOS面试题编程机制 31-35

    2024-03-25 16:54:04       17 阅读
  5. JVM G1垃圾回收器的工作内容

    2024-03-25 16:54:04       17 阅读
  6. 5.86 BCC工具之tcpstates.py解读

    2024-03-25 16:54:04       17 阅读
  7. 1928递归去处理压缩字符串

    2024-03-25 16:54:04       18 阅读
  8. P5963 [BalticOI ?] Card 卡牌游戏 贪心

    2024-03-25 16:54:04       20 阅读
  9. [Repo Git] manifests的写法

    2024-03-25 16:54:04       23 阅读
  10. 常用ES标准

    2024-03-25 16:54:04       19 阅读
  11. [leetcode] 26. 删除有序数组中的重复项

    2024-03-25 16:54:04       18 阅读
  12. String、StringBuilder、StringBuffer

    2024-03-25 16:54:04       15 阅读