美文网首页
oc的消息机制

oc的消息机制

作者: cj小牛 | 来源:发表于2016-06-06 16:49 被阅读51次

    import "ViewController.h"

    import "Person.h"

    // 导入框架 第一步

    import <objc/message.h>

    @interface ViewController ()

    @end

    @implementation ViewController

    • (void)viewDidLoad {
      [super viewDidLoad];
      Person *p = [[Person alloc]init];
      // [p eat];
      // oc 运行时,消息机制最重要的机制
      // 消息机制:任何方法调用,本质都是发送消息
      // sel :方法编号,根据方法编号就可以早到对应的方法实现
      // [p performSelector:@selector(eat)];// 用运行时去发送消息

    // 运行时的使用步骤
    // xcode 5 之后苹果就不建议使用底层的方法
    // xcode 5 之后,使用运行时,在bu起来的setting搜索msg 设置属性为nos
    // 对象方法调用
    objc_msgSend(p, @selector(eat));// 表示让p发送一个消息

    objc_msgSend(p, @selector(run:),10);//第参数的方法
    

    // 类方法调用(将类名转换成类对象)
    // [Person eat];

    [Person class];// 类对象
    [[Person class] performSelector:@selector(eat)];// 类对象调用方法
    

    // 运行时间
    objc_msgSend([Person class], @selector(eat)); // 类对象调用的方法是类方法

    }

    import <Foundation/Foundation.h>

    @interface Person : NSObject
    +(void)eat;
    -(void)eat;
    -(void)run:(int)run;
    @end

    import "Person.h"

    @implementation Person
    +(void)eat{

    NSLog(@"者里调用的是类方法") ;
    

    }
    -(void)eat{

    NSLog(@"者里调用的是对象方法") ;
    }
    -(void)run:(int)run{
    NSLog(@"你跑了%d",run);

    }
    @end

    相关文章

      网友评论

          本文标题:oc的消息机制

          本文链接:https://www.haomeiwen.com/subject/lydurttx.html