问题标签 [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.
ios - 以编程方式限制当前应用程序的网络访问
是否可以调配或做一些事情,以使应用程序的任何部分,即使是静态库也不能产生不需要的互联网流量(并且仍然得到 Apple 审查过程的批准)?如果有办法,请描述。
objective-c - 我们可以在 Objective-C 块中使用 inout 参数吗?
像这样的东西?
或使用此类参数的替代方法。
语境:
我正在尝试调整 the 的scrollViewWillEndDragging:withVelocity:targetContentOffset:
方法,UIScrollviewDelegate
但最后一个参数targetContentOffset
是 inout 参数。我正在使用https://github.com/JonasGessner/JGMethodSwizzler来调整期望将块用作替换方法的实例。
我正在尝试使用的代码...
谁能帮我吗 ?
objective-c - 在 ios 8 下无法获取 __NSCFURLSession 类
我有这样的代码片段
c = NSClassFromString(@"__NSCFURLSession");
使用 ios 7 模拟器,我能够得到 c
c类__NSCFURLSession 0x00000001113a2ce8
但在 ios 8 下,我得到了
c 类 0x0 0x0000000000000000
有人对此有解决方案吗?
ios - 无法调配 NSOutputStream 的 write:MaxLength:
在实际写入 NSOutputStream 之前,我需要编写自定义数据。
为了让 swizzling 代码执行,我创建了一个类别 NSOutputStream(SwizzleWrite),它包含以下内容:
然后我创建 Inout & 输出流: CFStreamCreatePairWithSocketToCFHost(kCFAllocatorDefault, hostRef, 80, &readStream, &writeStream);
但是现在当控件到达handleEvent:delegate时,具体在:[outputStream write:rawstring maxLength:sizeof(rawstring)]; ,我在 swizzledWrite:maxLength 上没有得到它:
我在这里做错了什么?
PS:我已经读到 swizzling Apple 方法对 Appstore 不友好,但我也读过它们被接受的案例。
ios - 有没有办法“捕获”应用程序内的所有 UIButton 点击?
我希望能够跟踪我的用户正在点击的按钮。有没有办法“捕获”或“记录”我的应用程序内的所有按钮点击?
我在考虑方法调配,但我真的不想这样做。
objective-c - ISA swizzling 并调用“super”
假设以下类层次结构。类A
是公开声明的:
类_B
是 的私有子类A
:
假设类的对象A
只能使用工厂方法createInstance
创建,该方法创建并返回_B
.
我想A
在每个实例的基础上增强实例的功能。所以我决定做一些 ISA swizzling 来实现:
我使用以下方法对一个NSObject
类别进行 ISA swizzling(此处显示的幼稚实现):
一切似乎都有效,但我注意到它[super a];
的行为不像预期的那样,-[A a]
如果运行时的超类实际上是_B
.
用以下代码替换对的调用super
是可行的,但很丑陋,并且需要开发人员的知识和工作:
调用时编译器会发出什么super
以及以任何方式更改此发出的代码?
ios - 所有子类的 Swizzle 方法
我有CLLocationManager
方法课setDelegate:
。我也有封闭框架中的继承类。我想交换setDelegate:
这个类的实现和所有继承。
但我没有得到任何子类sfl_classGetSubclasses
。这是第一个问题。第二:我知道子类的名称,我尝试在继承类中交换方法。
但是应用程序在运行时下降。在我使用封闭框架之前,交换方法可以完美运行。
ios - Swizzling - 在 Objective-C iOS 中撤销方法选择器
我们在 Objective-C 中使用 Swizzling。为方便起见,我们使用 CoconutKit 的辅助方法来实现:
然而,我们还想在代码中的某个点之后取消调整此方法。有没有办法做到这一点?
ios - Objective c中方法调配和类别之间的区别
我只是了解了在 obj c Method Swizzling中进行的方法调配以及使用方法调配的危险,忍不住在进行方法调配和使用类别覆盖方法实现之间进行了比较。它们都有助于覆盖预定义框架方法的功能。那么两者之间有什么区别还是可以互换使用?
ios - 如何在 iOS 中调配 UIApplication?
我需要对Swizzle UIApplication
方法进行分类,尤其是“ application:handleOpenURL:
”。我添加了 UIApplication 的类别类。我已经将自己的方法与原始方法交换了,但它从未触发过。Swizzle 类在应用程序启动的第一次调用,但从未触发 swizzle 方法。我附上了代码供您参考。
谁能拯救我的一天?我尝试使用一些私人图书馆,如“RSSwizzle”,但没有帮助。