This is a source to make swift environment enable load and initialize method.
It's simple and easy to use.
pod 'SwiftyLoad'
You can new a .m file anywhere of your project ,and reference in your project.
wtire the code Like this in the xxx.m file
#import <Foundation/Foundation.h> #import <Swifty_Demo-Swift.h> SWIFTY_LOAD_INITIALIZE(UIButton)//make UIKit class UIButton enable load() and initialize() SWIFTY_LOAD_INITIALIZE(TestObject)//make custom class TestObject enable load() and initialize()
import SwiftyLoad//import the SwiftyLoad framework //custom class must be define with @objc make the class can be hook in objective-c @objc class TestObject: NSObject { } //comform the NSSwiftyLoadProtocol in the extension extension TestObject : NSSwiftyLoadProtocol { public static func swiftyLoad() { print("TestObject--->swiftyLoad") } } //the system based class can be implementation NSSwiftyLoadProtocol directly extension UIButton : NSSwiftyLoadProtocol { public static func swiftyInitialize() { print("UIButton--->swiftyInitialize") } public static func swiftyLoad() { print("UIButton--->swiftyLoad") } }
Notes: If you feel confuse, you can read the sample code.