OC高效率52之理解objc_msgSend的作用

#import "ViewController.h"
#import "stdio.h"
@interface ViewController ()

@end

@implementation ViewController
//eg:C语言静态语言
void printHelloStatic()
{
    printf("static");
}
void printGoodByeStatic()
{
    printf("Say GoodBye");
}
void doSomeThingStatic(int type)
{
    if (type==0)
    {
        printHelloStatic();
    }
    else
    {
        printGoodByeStatic();
    }
    return;
}
//eg:C语言动态语言示范
void printHello()
{
    printf("Hello.world!\n");
}
void printGoodBye()
{
    printf("Say GoodBye.world!\n");
}
void doSomeThing(int type)
{
    void (*fun) ();
    if (type == 0)
    {
        fun = printHello;
    }
    else
    {
        fun = printGoodBye;
    }
    fun();
    return ;
}


- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    //OC消息发送的底层原理
    NSString *parameter;
    id returnValue = [self messageName:parameter];
    
    //编译器转换为
    returnValue = objc_msgSend(self,@selector(messageName:),parameter);
}
-(id)messageName:(NSString *) str
{
    return str;
}


你可能感兴趣的:(OC高效率52之理解objc_msgSend的作用)