28
GitHub - MarioIannotta/SwizzleSwift: Swizzle selectors with just one clean and e...
source link: https://github.com/MarioIannotta/SwizzleSwift
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
SwizzleSwift
Who said that method swizzling needs to look ugly? SwizzleSwift is a little wrapper that lets you swizzle selectors just one clean and elegant API.
Installation
Pods
pod 'SwizzleSwift'
Swift package manager
From Xcode, select File → Swift Packages → Add Package Dependency → Select your project → Search SwizzleSwift
Usage example
Swizzle(<#AType.Self#>) { <#OriginalSelector#> ==> <#SwizzledSelector#> }
Given the following controller
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() print(#function) } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) print(#function) } } extension UIViewController { @objc private func myViewDidLoad() { print(#function) myViewDidLoad() } @objc private func myViewWillAppear(_ animated: Bool) { print(#function) myViewWillAppear(animated) } }
Swizzling the methods like this
extension UIViewController { @objc static func methodSwizzling() -> Void { Swizzle(ViewController.self) { #selector(viewDidLoad) ==> #selector(myViewDidLoad) #selector(viewWillAppear(_:)) ==> #selector(myViewWillAppear(_:)) } } }
Will produce the following output
myViewDidLoad() viewDidLoad() myViewWillAppear(_:) viewWillAppear(_:)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK