STSwizzle 在 NSObject 上添加了几个方法。一些方法允许在类上交换方法,其他方法允许在特定实例上交换方法。
如果您想知道,交换是指交换调用方法时将执行的操作指令。
+ (void)swizzleClassMethod:(SEL)firstSelector withMethod:(SEL)secondSelector;
该方法允许您交换两个类方法。例如,您可以交换 +(void)foo1
和 +(void)foo2
,使得当调用 foo1 方法时执行 foo2 函数,反之亦然。
+ (void)swizzleInstanceMethod:(SEL)firstSelector withMethod:(SEL)secondSelector;
该方法允许交换两个实例方法。这些方法将为类的所有实例交换。
- (void)addMethodForSelector:(SEL)selector types:(char*)types implementation:(implementation_block)impl;
该方法允许向实例添加一个新方法。当在实例上调用传入参数的 selector 时,将执行参数中的实现块。
- (void)replaceMethodForSelector:(SEL)selector implementation:(implementation_block)impl;
该方法允许替换实例上的方法。当在实例上调用传入参数的 selector 时,将执行参数中的实现块。
要将此组件包含到您的项目中,我建议您使用 Cocoapods: 此组件将很快通过 Cocoapods 提供。
关于交换的文章将很快提供。.