![]() |
1
29
类别扩展了原始类,但它们不为其子类,因此调用
你想要的叫做 Method Swizzling . 但是要注意你的代码可能会破坏一些东西。有篇关于 Theocacao written by Scot Stevenson 关于旧的objective-c运行时中的方法swizzing, Cocoa with Love by Matt Gallagher 有一篇关于在新的objective-c 2.0运行时中的方法swizzle的文章,以及一个简单的替换方法。
或者,可以对类进行子类划分,然后使用子类或
请注意,苹果已经弃用了
|
![]() |
2
8
如果您将对该类进行编码,只需将选择器重命名为代码可以使用的内容,并调用原始选择器
如果要重写该类的此选择器的默认实现,则需要使用 method swizzling 方法。 |
![]() |
3
1
不完全在类别中,但有一个在运行时动态添加方法的解决方法。Samuel Dfago在他的文章中描述了一种创建块IMP实现方式的超级调用超级方法,可以找到他的原创文章。 here 相关代码为:
|
![]() |
Martin sku · 在目标C中打印时间 2 年前 |
![]() |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
![]() |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
![]() |
James Chan · 如何使用锁定/解锁? 6 年前 |
![]() |
Josh F. · NSBundle mainBundle返回零 6 年前 |