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

Is it possible to disable method swizzling in a swift project?

我有一个带有第 3 方框架的非常大的项目,我想禁用方法调配以确保第 3 方框架不会破坏默认的预期行为。 可能吗?项目设置中是否有一些标志?

没有禁用它的选项,但如果您避免从 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
}

虽然我不建议这样做,但您可以试一试。