OC_类、description方法、SEL

1.类:

     类的本质:类也是class类型的对象

             typedef struct objc_class  * Class;

             每个类只有一个类对象;

     

     

        1.当程序启动时,就会加载项目中所有的类和分类,而且加载后会调用每个类的+load方法;

        2.当第一次使用某个类的时候,会调用当前类的+initialize方法;

        3.先加载父类,再加载子类(先调用父类的+load方法,再调用子类的+load方法);

          先初始化父类,再初始化子类(先调用父类的+initialize方法,再调用子类的+initialize方法,initialize在第一次使用时加载);

        4.分类方法如果有+initialize方法,不会调用原来类的+initialize方法了;


2.description方法:


//类调用+description方法
+(NSString *)description{
    return @"Abc";
}

//对象调用+description方法
-(NSString *)description{
    //打印自身会引发死循环
    //NSLog(@"%@",self);
    return [NSString stringWithFormat:@"...."];
}


3.SEL:

     1.方法的存储位置:

       每个类的方法列表都存储在类对象中

       每个方法都有与之对应的SEL类型的对象

       根据一个SEL对象就可以找到方法的地址,进而调用方法

     2.SEL类型的定义:

       typedef struct objc_selector  * SEL;

     3.SEL对象的创建:

        SEL s = @selector(test)

        SEL s2 = NSSelectorFromString(@"test");


     _cmd == @selector(test)

     

     -(void)test{

     //_cmd代表当前方法

     [self performSelector:_cmd];//会引发死循环

     }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值