是否可以在快速项目中禁用方法调配?

时间:2016-10-11 07:52:01

标签: ios swift method-swizzling

我有一个非常大的项目与第三方框架,并希望禁用方法调配,以确保第三方框架不会混淆默认的预期行为。 可能吗?项目设置中是否有一些标志?

1 个答案:

答案 0 :(得分:1)

没有选项可以禁用它,但如果你避免从NSObject继承子类,那么你就是安全的。 如果你想阻止Any Library的混乱,你可以覆盖它的核心方法,即

public func class_addMethod(_ cls: Swift.AnyClass!, _ name: Selector!, _ imp: IMP!, _ types: UnsafePointer<Int8>!) -> Bool

public func method_exchangeImplementations(_ m1: Method!, _ m2: Method!)

喜欢这个

public func method_exchangeImplementations(_ m1: Method!, _ m2: Method!) {
 }
public func class_addMethod(_ cls: Swift.AnyClass!, _ name: Selector!, _ imp: IMP!, _ types: UnsafePointer<Int8>!) -> Bool
 {
 return false
}

我不建议这样做,但你可以尝试一下。