Get the App
SLTechnology News&Howtos  ›  Development  › 

What are the requirements of Method Swizzling for Method?

Shulou Source: shulou.com Published: 2022-06-02 10:23:42 10月03日 Update

In this issue, the editor will bring you about the requirements of Method Swizzling for Method. The article is rich in content and analyzes and narrates it from a professional point of view. I hope you can get something after reading this article.

When using method_exchangeImplementation, class_replaceMethod, and method_setImplementation for Method Swizzling, the requirements for originalMethod and destMethod are as follows:

(1) the type of return value can be different. Such as:

-(void) func1: (NSString *) word {NSLog (@ "This is func1~");}-(BOOL) func2: (NSString *) word {NSLog (@ "This is func2~"); return YES;} (2) the number of parameters can vary. Such as:

-(void) func1: (NSString *) word {NSLog (@ "This is func1~");}-(void) func2: (NSString *) word sec: (NSString *) word2 {NSLog (@ "This is func2~");} (3) but! The corresponding parameter type must be the same! Such as:

-(void) func1: (NSString *) word {NSLog (@ "This is func1~");}-(void) func2: (NSString *) word sec: (NSString *) word2 {NSLog (@ "This is func2~");} the first parameter is of type NSString.

-(void) func1: (NSString *) word sec: (int) word2 third: (BOOL) word3 {NSLog (@ "This is func1~");}-(void) func2: (NSString *) word sec: (int) word2 {NSLog (@ "This is func2~");} func1 the first parameter is NSString,func2, the second parameter is NSString;func1, the second parameter is int,func2, and the second parameter is int.

-(void) func1: (NSString *) word sec: (int) word2 third: (BOOL) word3 {NSLog (@ "This is func1~");}-(void) func2: (NSString *) word sec: (int) word2 third: (NSString *) word3 {NSLog (@ "This is func2~");} the above situation will be wrong!

This is what the editor shares with you about Method Swizzling's requirements for Method. If you happen to have similar doubts, you might as well refer to the above analysis to understand. If you want to know more about it, you are welcome to follow the industry information channel.

Tags: Parameter type truth difference content analysis same professional number small and medium rich in content that is situation article more knowledge article industry angle information Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Microsoft macOS Redmi MariaDB Shulou Tech Info