问题标签 [swizzling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
595 浏览

opengl - glsl 减去调酒

在 GLSL 中调酒能以某种方式减去吗?例如: vec.-yx-wz
这样做的目的是通过简单的定义获得 2d 法线:

没有这个,我通过以下方式实现:

0 投票
2 回答
1051 浏览

ios - swizzling NSObject 的 performSelector:withObject: 给出 EXC_BAD_ACCESS 为什么?

我正在尝试调配 NSObject 的performSelector:withObject: rentzsch调配库,这里是代码:

我的问题是,为什么当我运行它时它会给我 EXC_BAD_ACCESS?
请注意,它总是在同一点失败。而且,我只是在追踪论点(没有其他魔法)。

这是我在控制台中得到的:

这是回溯:

0 投票
1 回答
597 浏览

ios - Method Swizzling for UIView

I am following "This" guide. to capture UIView touchesBegan, but when I NSLog() touchesBegan in the UIViewController that this is for, it doesn't fire but does fire in the swizzled method. Is there a way I can have it fire in both?

0 投票
1 回答
500 浏览

ios - 方法 Swizzling 没有正确触发?

我关注这篇文章是为了更好地理解方法混合的工作原理。我有这样的主视图控制器(这是一个新项目):

如果我运行它,它会打印 glviewappear,如果我删除

然后它打印 viewWillAppear: <GLViewController: 0x9d11a90>。我的项目需要能够使用这两种方法。有没有办法做到这一点?

0 投票
1 回答
515 浏览

ios - swizzled时不调用UIView的drawRect

我正在尝试使用高级 Objective-C 方法。我想要实现的是将特定的绘图代码附加到现有的UIView.

我很容易开始,我继续drawRect在一个类别中声明我自己的方法:

然后我在类的实现中swizzleddrawRect方法:UIView

此方法的实现可在GitHub 上获得,并且在所有其他情况下都可以使用 swizzling。

所以按照逻辑,每次drawRect被调用,应该只是打印出“Test”。但它不起作用,我调配的方法永远不会被调用。我继续发现我在这里做错了什么,但我越看它,我就越相信问题出在其他地方。

如果drawRect甚至没有调用该方法怎么办?我继续尝试强制调用它:

也不行。

所以我的问题是:

如何在这种情况下强制UIView调用drawRect,甚至是我的 swizzled 实现?

谢谢!

0 投票
1 回答
67 浏览

ios - 如何在没有子类化的情况下使所有 UITextViews 的背景为紫色?

我有一个要调试的应用程序。我希望应用程序中的每个 UITextview 都具有紫色背景。

我认为方法调配是一种可能的解决方案,但我无法让它发挥作用。

问题:如何在没有子类化或手动设置每个 textview 的背景颜色的情况下做到这一点?

谢谢

0 投票
1 回答
81 浏览

ios - CategoryA 应该如何覆盖 categoryB 方法

AFNetworking2.0 中,UIImageView+AFNetworking有一个方法:

我想覆盖它并在这里返回我的自定义对象。我还想覆盖 中的所有方法AFImageCache,所以基本上我会在这里创建一个新协议。我考虑过方法调配,但是由于缺乏经验,我不确定它是否适用于 2 个类别。如果我的类别在AFNetworking类别之前加载,它仍然可以工作吗?

这种方法到底好不好?我想将磁盘缓存添加到内存中,我想知道在代码质量方面哪种方式最干净。

0 投票
8 回答
18251 浏览

runtime - Swift 函数调配/运行时

在 Swift 之前,在 Objective-C 中,我会使用<objc/runtime.h>.

如果有人对修改 Swift 的运行时和挂钩函数(如 CydiaSubstrate 和其他在该领域有帮助的库)有任何信息,请通知我。

0 投票
1 回答
506 浏览

ios - 我如何调配 corefoundation 框架方法?

我按照这篇文章进行了 Objective-c 方法的调配。我能够成功地调配方法目标 -c 类方法。我还想调配像 CFHostCreateWithName() 这样的核心基础方法。是否可以混合核心基础方法?

0 投票
1 回答
501 浏览

ios - swizzled 类方法中设置的类别类的属性总是返回 nil

我想创建一个 UIImage 类的类别,它将有自己的处理

方法将为我保存名称作为创建图像的属性。为此,我为此方法创建了一个 swizzle,并为它的 setter 和 getter 创建了对我新添加的属性的关联引用。最后实现看起来像这样:

这个解决方案似乎不起作用,因为每当我在使用方法imageNamed创建的 UIImage 上调用getImageName时,我总是得到nil。我目前不知道为什么会发生这种情况。我的实施中有什么遗漏吗?