iOS小技能:动态地给类添加新的方法、实例变量、属性。( 对已经存在的类在扩展中添加自定义的属性)

124 篇文章 370 订阅 ¥99.90 ¥299.90
本文介绍了如何在iOS开发中利用Category和Runtime动态地给类添加新的实例变量和属性,包括添加私有属性、公共属性以及动态创建属性的应用场景。文中详细解释了关联对象的行为,并给出了具体示例,最后提到了删除属性的规范做法。
摘要由CSDN通过智能技术生成

前言

添加新的实例变量的原理:利用category结合runtime的对象关联(associated objects)实现

应用:

  1. 添加私有属性用于更好地去实现细节
  2. 添加public属性来增强category的功能
  3. 创建一个用于KVO的关联观察者。当在一个category的实现中使用KVO时,建议用一个自定义的关联对象而不是该对象本身作观察者。

动态创建属性的具体应用场景:利用属性进行传值的时候,我们就可以利用本文的方法进行动态创建属性。尤其在逆向其他app的时候,往已经存在class新增一个属性,用于数据传递,尤其是异步操作的时候。

其他案例:AFNetworking在 UIImageView 的category上用了关联对象来保持一个operation对象,用于从网络上的某URL异步地获取一张图片。

I 添加新的实例变量

1.1 原理

利用 runtime APIobjc_setAssoc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iOS逆向

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值