问题标签 [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 回答
1283 浏览

ios - willMoveToWindow 被调用两次

我很困惑willMoveToWindow:,我遇到了一个问题,它在视图上被调用了两次。

当一个新的视图控制器被推到一个UINavigationController,

willMoveToWindow:在具有值的现有视图上调用nil(有意义,因为视图正在移出屏幕)

在那之后,再次调用该方法willMoveToWindow:,但现在使用原始窗口。

我最初的想法是window在原始方法启动之前调动和调用属性。

为了安全起见,我创建了一个小型示例项目并确认了相同的行为。

基本上我需要一种方法来确定视图不在window(因为当视图移动到实际上不应该运行的窗口时我正在触发逻辑(至少不是两次))

作为参考,可以使用以下代码重现该问题:

编辑控制台

0 投票
2 回答
1549 浏览

objective-c - Objective-C中方法调配的正确方法

目前正在使用swizzlingObjective-C 中的方法进行试验,我有一个问题。我试图了解方法调酒的正确方法,在网上研究后,我偶然发现了这篇 NSHipster 帖子: http ://nshipster.com/method-swizzling/

在帖子中,作者有一些方法调配示例代码。我正在找人更好地向我解释作者在做什么。特别是我对didAddMethod逻辑感到困惑。为什么作者不只是直接swapping/exchanging方法实现?我对此的唯一理论是可能还有一些viewWillAppear:尚未添加的机会UIViewController's method dispatch_table。特别是如果该类别可能先加载到内存中UIViewController......这是原因吗?好像比较奇怪?只是寻找更多的洞察力/清晰度,谢谢:)

0 投票
1 回答
788 浏览

objective-c - Objective C - IMP 和函数指针有什么区别?

我最近开始了一个需要进行调配的项目。

看了很多教程后,我有一个问题,实现和函数指针有什么区别?

0 投票
2 回答
1381 浏览

ios - 如何调整 NSURLConnection 类的 init 方法

我想调整 NSURLConnection 类的 init init 方法,我已经尝试过这段代码,但它似乎对我不起作用

这是我从视图控制器发起的请求

0 投票
2 回答
1018 浏览

ios - 如何调配 NSURLSession 类方法 dataTaskWithUrl

我一直在尝试调整 NSURLSession 类方法 dataTaskWithRequest 但无法完成

提前致谢 !!

0 投票
2 回答
1060 浏览

ios - 如何调配 NSURLSession 方法 dataTaskWithUrl

我一直在尝试调整 NSURLSession 类的 dataTaskWithURL 方法。这就是我尝试过的

而这个 my_dataTaskWithURL 我想传递自己的完成处理程序,但我不知道如何创建它

提前致谢 !!

0 投票
0 回答
188 浏览

ios - 在我的应用程序之外调整共享框架的方法

我已经为 s 实现了一个 Swizzling 类别,当它们出现时UIViewController,它就是s:NSlog

显然,这仅在 swizzled 应用程序内工作正常,但我想知道我是否也可以“挂钩”共享presentViewController,以便在我的应用程序外部呈现视图时调用它。我在想也许可以UIViewController动态加载dlopen而不是获取指向它的全局图像符号的指针。可能吗?如果不是——不是吗?

免责声明 - 我这样做是为了在我自己的开发设备上进行调试,并且不会将应用程序上传到 App Store。

0 投票
1 回答
623 浏览

swift - NSLocale 使用方法 swizzling 更改 currentLocale 输出以进行测试

我正在尝试更改设备 currentLocale 输出以执行一些有趣的单元测试,这是我正在使用的代码,但似乎返回的 currentLocale 没有被覆盖。有什么提示吗?

// 编辑

上面的代码不起作用。但是如果我这样写它就可以了:

在这种情况下有什么问题class_addMethod

0 投票
3 回答
243 浏览

ios - NSMutableDictionary 的 Swizzled 方法没有被调用

我正在尝试调配 NSMutableDictionary。我在这里做错了什么?我正在尝试为 NSMutableDictionary 覆盖 setObject:forKey:。

@结尾

0 投票
1 回答
1683 浏览

objective-c - 如何使用 Swift 向 UIApplication 添加 swizzling 方法?

我在下面有一个代码,试图将 swizzling 方法用于 UIApplication 方法。但是这些方法没有被调用。同时,我正在尝试将此代码添加到框架或私有 pod 中。