• OC的SEL和id


    SEL s2 = @selector(eat:);

     [ani performSelector:s2 withObject:@"一块沾有粑粑的棒棒糖"];

     [ani performSelector:@selector(eat:andFoodName:)

     withObject:@"班长养的恶狗"withObject:@"一块沾有粑粑的棒棒糖"];

     SEL(是一个包含地址的类型)

    22)id类型:

    NSObject和id类型都可以指向任何对象

     NSObject会进行编译时检查(需要强制类型转换)

     id不需要强制类型转换,id可以直接使用

     编译器看到id类型,认为是动态类型,不在检查类型

    23)多态:

    父类不能访问子类方法

     多态的概念:不同的对象以自己的方式响应相同名称的能力称为多态

     体现出来:父类的指针指向了子类的对象

     多态的条件:1)有继承关系

     2)有方法重写 (子类把父类的同名方法给重写了)

     多态的使用注意:

    1)使用子类的方法如果父类中没有此方法则使用子类强制类型转换

     类对象的获取方法:

     类对象属于Class类型

     1)通过实例对象来获取

     Class c1 = [d class];

     Class c2 = [d1 class];

     2)通过类名来获取类对象

     Class c3 = [Dog class];

     NSLog("%p", c3);

    24)构造方法:

    new方法的内部会分别调用两个方法类完成3件事情:

     1)使用alloc方法来分配存储空间(返回分配的对象);

     2)使用init方法来对对象进行初始化;

     3)返回对象的首地址

     init是一个对象方法

     [Person alloc] 的时候,内存已经被清0(其中的属性被0初始化)

     OC构造方法,学习哪些内容:

    主要学习如何重写构造方法,让对象创建成功后,就有初始的值

     super指代的是父类对象

    25)自定义构造方法:

    1)是一个对象方法:

     2)返回是id类型(instancetype)

     3)方法名一定要以 initWith

     -(instancetype)initWithName:(NSString *)name andAge:(int)age{...}

     Person *p1 = [Person alloc] initWithName:@"张三丰"andAge:

  • 相关阅读:
    lighting
    移动端
    SVN常见问题
    前四章知识点小结
    如何不运用第三方变量实现两个数的交换
    awk
    sort
    cut
    sed
    30道Linux面试题
  • 原文地址:https://www.cnblogs.com/coolcold/p/4674381.html
Copyright © 2020-2023  润新知