1
6
当心。您将要在ObjC中输入一些相当深的魔法,并且您可以生成的各种bug都是令人费解的。这些是在其他所有操作都失败之后应该使用的最后一种技术,您应该尽可能地隔离这些代码。也就是说,ObjC是一种高度动态的语言,您可以重新构建大多数东西。
如果你做错了,你不会得到任何警告或错误。你只会得到奇怪的崩溃。
Hijacking with method_exchangeImplementations() . 不过,在完成此操作之后,祝您使用调试器好运。 |
2
1
实际上,您可以通过子类化修改任何内容。这是您可以做的最微妙的事情之一,您可以研究方法swizling(但是方法swizling会影响类的所有成员),但是在objective c中,设置任何对象的类都非常容易,所以基本上您只需要声明一个子类,而不声明任何额外的IVAR,并且只重写所需的方法(您可能希望调用超级实现),然后在运行时通过object\u setClass(在中声明)更改对象的类。 |
Martin sku · 在目标C中打印时间 2 年前 |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
James Chan · 如何使用锁定/解锁? 6 年前 |
Josh F. · NSBundle mainBundle返回零 6 年前 |