3

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

4

1 回答 1

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
}

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

于 2016-10-11T08:35:32.957 回答